在Java中,List集合是存储对象的一种常用数据结构。合并两个相同类型的List集合是一个常见的操作,下面我们将讨论多种方法来实现这一需求。
方法一:使用 addAll()
方法
addAll()
方法是List接口提供的一个非常方便的方法,可以直接将一个List的所有元素添加到另一个List中。
import java.util.ArrayList;
import java.util.List;
public class ListMerge {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");
List<String> list2 = new ArrayList<>();
list2.add("D");
list2.add("E");
list2.add("F");
list1.addAll(list2); // 合并list2到list1
System.out.println("合并后的List: " + list1);
}
}
输出:
合并后的List: [A, B, C, D, E, F]
这种方式简单直观,适用于需要将一个List的所有元素合并到另一个List的场景。
方法二:使用 Stream API
在Java 8及以上版本中,我们可以使用Stream API来合并两个List。这种方法相对简洁且具有更强的代码可读性。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ListMergeStream {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");
List<String> list2 = new ArrayList<>();
list2.add("D");
list2.add("E");
list2.add("F");
List<String> mergedList = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList()); // 合并流并收集成List
System.out.println("合并后的List: " + mergedList);
}
}
输出:
合并后的List: [A, B, C, D, E, F]
使用Stream API 的优势在于可以使用更为丰富的流处理方法,例如过滤、排序等。
方法三:使用 for
循环手动合并
除了上述方法外,我们可以通过传统的for
循环手动合并两个List。这种方式更灵活,但代码相对繁琐。
import java.util.ArrayList;
import java.util.List;
public class ListMergeForLoop {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("A");
list1.add("B");
list1.add("C");
List<String> list2 = new ArrayList<>();
list2.add("D");
list2.add("E");
list2.add("F");
List<String> mergedList = new ArrayList<>(list1); // 初始化为list1
for (String item : list2) {
mergedList.add(item); // 手动添加list2的元素
}
System.out.println("合并后的List: " + mergedList);
}
}
输出:
合并后的List: [A, B, C, D, E, F]
这种方式最为简洁明了,但在性能和可读性上不如前两种方式优越。
总结
合并两个List集合的方式有很多,不同方法各有优劣。在实际项目中,选择合适的合并方法主要取决于具体需求和上下文。如果希望代码更加简洁且具有可读性,建议使用addAll()
或Stream API。如果需要更加灵活的控制,可以使用传统的for循环。无论使用哪种方法,理解和掌握List的基本操作都是非常重要的。