Java多種方法實(shí)現(xiàn)合并多個(gè)list對象列表
在 Java 中,將多個(gè)對象的列表數(shù)據(jù)合并成一個(gè)新的列表可以通過多種方式實(shí)現(xiàn)。假設(shè)有一個(gè) List 的列表,每個(gè)列表都包含相同類型的對象,可以使用 Stream API 或傳統(tǒng)的循環(huán)來實(shí)現(xiàn)這一目標(biāo)。
示例代碼User 類
假設(shè)我們有一個(gè) User 類:
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{name='" + name + "', age=" + age + "}";
}
}使用 Stream API
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class MergeListsExample {
public static void main(String[] args) {
List<User> list1 = Arrays.asList(
new User("Alice", 30),
new User("Bob", 25)
);
List<User> list2 = Arrays.asList(
new User("Charlie", 35),
new User("Diana", 28)
);
List<User> list3 = Arrays.asList(
new User("Eve", 22),
new User("Frank", 31)
);
List<List<User>> listOfLists = Arrays.asList(list1, list2, list3);
// 使用 Stream API 合并列表
List<User> mergedList = listOfLists.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
// 輸出合并后的列表
mergedList.forEach(System.out::println);
}
}使用傳統(tǒng)循環(huán)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MergeListsExample {
public static void main(String[] args) {
List<User> list1 = Arrays.asList(
new User("Alice", 30),
new User("Bob", 25)
);
List<User> list2 = Arrays.asList(
new User("Charlie", 35),
new User("Diana", 28)
);
List<User> list3 = Arrays.asList(
new User("Eve", 22),
new User("Frank", 31)
);
List<List<User>> listOfLists = Arrays.asList(list1, list2, list3);
// 使用傳統(tǒng)循環(huán)合并列表
List<User> mergedList = new ArrayList<>();
for (List<User> list : listOfLists) {
mergedList.addAll(list);
}
// 輸出合并后的列表
mergedList.forEach(System.out::println);
}
}解釋
定義 User 類:
User類包含name和age屬性,并提供相應(yīng)的 getter 和 setter 方法。- 重寫了
toString方法以便于輸出。
創(chuàng)建多個(gè) List:
- 創(chuàng)建了三個(gè)
List<User>對象,每個(gè)列表包含幾個(gè)User對象。
使用 Stream API 合并列表:
listOfLists.stream():將List<List<User>>轉(zhuǎn)換為Stream<List<User>>。flatMap(List::stream):將每個(gè)List<User>轉(zhuǎn)換為Stream<User>,并將其展平為一個(gè)單一的Stream<User>。collect(Collectors.toList()):將Stream<User>收集為一個(gè)List<User>。
使用傳統(tǒng)循環(huán)合并列表:
- 創(chuàng)建一個(gè)空的
ArrayList<User>用于存儲合并后的數(shù)據(jù)。 - 遍歷
listOfLists,將每個(gè)子列表中的元素添加到mergedList中。
輸出
無論使用 Stream API 還是傳統(tǒng)循環(huán),最終的輸出都是相同的:
User{name='Alice', age=30}
User{name='Bob', age=25}
User{name='Charlie', age=35}
User{name='Diana', age=28}
User{name='Eve', age=22}
User{name='Frank', age=31}總結(jié)
在Java編程中,合并多個(gè)列表對象可以通過Stream API或傳統(tǒng)循環(huán)方式實(shí)現(xiàn),使用Stream API進(jìn)行合并時(shí),可利用flatMap方法將嵌套的List展平,再通過collect方法收集成一個(gè)新的列表,傳統(tǒng)循環(huán)則通過創(chuàng)建一個(gè)空的ArrayList,并通過遍歷每個(gè)列表將元素添加進(jìn)去,兩種方法都能有效合并列表,并保持?jǐn)?shù)據(jù)類型一致。
到此這篇關(guān)于Java多種方法實(shí)現(xiàn)合并多個(gè)對象列表的文章就介紹到這了,更多相關(guān)Java合并多個(gè)對象列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot應(yīng)用的接口訪問從HTTP改為HTTPS
本文主要介紹了SpringBoot應(yīng)用的接口訪問從HTTP改為HTTPS,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
Java ApiPost請求返回406狀態(tài)碼問題的解決方案
APIPost是一款專為開發(fā)者和測試人員設(shè)計(jì)的API測試工具,類似于Postman,但提供了更多的團(tuán)隊(duì)協(xié)作和文檔管理功能,它可以幫助你更好地進(jìn)行接口調(diào)試和集成測試,但遇到了請求后返回的是406狀態(tài),所以本文給大家介紹了Java ApiPost請求返回406狀態(tài)碼問題的解決方案2025-04-04
IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟
這篇文章主要介紹了IntelliJ IDEA下Maven創(chuàng)建Scala項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
springboot集成fastDfs過程代碼實(shí)例
這篇文章主要介紹了springboot集成fastDfs過程代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Java多線程(單例模式,堵塞隊(duì)列,定時(shí)器)詳解
這篇文章主要介紹了java多線程的(單例模式,堵塞隊(duì)列,定時(shí)器),具有一定參考價(jià)值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下2021-08-08
Spring Cloud Alibaba Nacos Config配置中心實(shí)現(xiàn)
這篇文章主要介紹了Spring Cloud Alibaba Nacos Config配置中心實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案
SpringBoot的Actuator 模塊提供了生產(chǎn)級別的功能,比如健康檢查,審計(jì),指標(biāo)收集,HTTP 跟蹤等,幫助我們監(jiān)控和管理Spring Boot 應(yīng)用,本文將給大家介紹SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案,需要的朋友可以參考下2024-07-07
關(guān)于IDEA使用jsp可以訪問頁面轉(zhuǎn)換為html彈出頁面為404的問題
這篇文章主要介紹了關(guān)于IDEA使用jsp可以訪問頁面轉(zhuǎn)換為html彈出頁面為404的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12

