Java中List集合合併是常用的操作,在實際開發中也經常遇到。合併List集合可以採用多種方式,如自己編寫代碼,使用Java8的Stream流,使用Apache的Commons Collections工具類等等。本文將從多個方面詳細講解javalist合併的相關知識。
一、addAll()方法的使用
Java中List集合提供了addAll()方法,可以很輕鬆地實現兩個List之間的合併。具體使用方法如下:
List list1 = new ArrayList();
List list2 = new ArrayList();
List result = new ArrayList();
list1.add("A");
list1.add("B");
list2.add("C");
list2.add("D");
result.addAll(list1);
result.addAll(list2);
使用addAll()方法將list1和list2合併到result中,最終生成的result集合中包含了”A”,”B”,”C”,”D”四個元素。
二、Java8 Stream流的使用
Java8中提供了Stream流的API,使得List的合併變得更加簡便和高效。Stream流可以將多個List轉化為一個Stream流,然後再調用collect()方法轉化為List集合。使用方法如下:
List list1 = new ArrayList();
List list2 = new ArrayList();
list1.add("A");
list1.add("B");
list2.add("C");
list2.add("D");
List result = Stream.of(list1, list2)
.flatMap(Collection::stream)
.collect(Collectors.toList());
使用Stream將list1和list2轉化為一個Stream流,然後使用flatMap()方法將多個Stream流合併成一個,最後再使用collect()方法轉化為一個List集合。最終的result集合中也包含了”A”,”B”,”C”,”D”四個元素。
三、Apache Commons Collections的使用
Apache Commons Collections是一款非常好用的Java工具類庫,其中包含很多常見的數據結構和算法的實現。其中也有ListUtils工具類,提供了一個union()方法,可以實現兩個List列表的合併操作。使用方法如下:
List list1 = new ArrayList();
List list2 = new ArrayList();
list1.add("A");
list1.add("B");
list2.add("C");
list2.add("D");
List result = ListUtils.union(list1, list2);
使用ListUtils的union()方法將list1和list2合併到result中,最終生成的result集合中也包含了”A”,”B”,”C”,”D”四個元素。
四、兩個List去重合併
在實際開發中,我們可能需要對兩個List中的元素進行去重後再合併,這時可以結合Set集合來實現。具體實現如下:
List list1 = new ArrayList();
List list2 = new ArrayList();
list1.add("A");
list1.add("B");
list2.add("B");
list2.add("C");
Set set = new HashSet(list1);
set.addAll(list2);
List result = new ArrayList(set);
首先將list1中的元素添加到Set集合中,然後再將list2中的元素添加到Set集合中,這樣就可以實現去重。最後將Set集合轉換成一個List集合,就可以得到合併去重後的結果。
五、多個List合併
在有些情況下,我們可能需要對多個List列表進行合併。這時可以藉助Java8中的reduce()方法來實現,reduce()方法可以將多個List列錶轉換成一個List集合。使用方法如下:
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
list1.add("A");
list1.add("B");
list2.add("C");
list2.add("D");
list3.add("E");
list3.add("F");
List result = Stream.of(list1, list2, list3)
.reduce((a, b) -> {
List tempList = new ArrayList(a);
tempList.addAll(b);
return tempList;
})
.orElse(Collections.emptyList());
使用Stream將list1、list2、list3轉化為一個Stream流,然後使用reduce()方法將多個List列表合併成一個,每次都將兩個List列表合併到一起,最終返回一個List集合。最後使用orElse()方法給一個默認的空List作為結果。
六、小結
List集合的合併是Java開發中常見的操作,也有多種實現方式。我們可以使用addAll()方法、Java8的Stream流、Apache Commons Collections工具類以及結合Set集合實現去重合併等多種方式來合併List集合。這些方法都可以根據實際需求來選擇使用,提高工作效率,加快開發速度。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151075.html
微信掃一掃
支付寶掃一掃