欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java取出list中某幾個(gè)屬性組成一個(gè)新集合的幾種方式

 更新時(shí)間:2024年03月28日 09:09:32   作者:齊穗穗  
在Java開發(fā)中經(jīng)常需要對(duì)List中的對(duì)象進(jìn)行一些操作,例如對(duì)某個(gè)字段進(jìn)行過濾、排序等,這篇文章主要給大家介紹了關(guān)于java取出list中某幾個(gè)屬性組成一個(gè)新集合的幾種方式,需要的朋友可以參考下

我用了三種方式,1:forEach循環(huán);2:for循環(huán);3:stream方法

package org.springblade.test;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
 
public class Test {
 
    @org.junit.jupiter.api.Test
    public void aaa() {
        User user1 = new User("張三", 10, 1);
        User user2 = new User("李四 ", 11, 1);
        User user3 = new User("王五", 12, 0);
        List<User> users = new ArrayList<>();
        users.add(user1);
        users.add(user2);
        users.add(user3);
        //我這里都轉(zhuǎn)為了List<Map<String, Object>>數(shù)組,也可以轉(zhuǎn)換為一個(gè)新的實(shí)體類(自行創(chuàng)建)
        //使用forEach循環(huán)轉(zhuǎn)化
        List<Map<String, Object>> infosFromForEach = new ArrayList<>();
        users.forEach(user -> {
            Map<String, Object> singleMap = new HashMap<>();
            singleMap.put("age", user.getAge());
            singleMap.put("gender", user.getGender());
            infosFromForEach.add(singleMap);
        });
        //使用for循環(huán)轉(zhuǎn)化
        List<Map<String, Object>> infosFromFor = new ArrayList<>();
        for (User user : users) {
            Map<String, Object> singleMap = new HashMap<>();
            singleMap.put("age", user.getAge());
            singleMap.put("gender", user.getGender());
            infosFromFor.add(singleMap);
        }
        //使用stream流實(shí)現(xiàn)轉(zhuǎn)換
        List<Map<String, Object>> collect = users.stream().map(user -> {
            Map<String, Object> singleMap = new HashMap<>();
            singleMap.put("age", user.getAge());
            singleMap.put("gender", user.getGender());
            return singleMap;
        }).collect(Collectors.toList());
    }
 
 
}
 
class User {
    //姓名
    private String name;
    //年齡
    private Integer age;
    //性別:0:女;1:男
    private Integer gender;
 
    public User() {
    }
 
    public User(String name, Integer age, Integer gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
 
    public String getName() {
        return name;
    }
 
    public User setName(String name) {
        this.name = name;
        return this;
    }
 
    public Integer getAge() {
        return age;
    }
 
    public User setAge(Integer age) {
        this.age = age;
        return this;
    }
 
    public Integer getGender() {
        return gender;
    }
 
    public User setGender(Integer gender) {
        this.gender = gender;
        return this;
    }
}

附:對(duì)象集合的一些常用操作-取出某個(gè)屬性組成新的集合、集合與逗號(hào)拼接的字符串相互轉(zhuǎn)換、對(duì)象集合根據(jù)某一屬性分組

1.將對(duì)象集合中的某個(gè)屬性取出組成一個(gè)單獨(dú)的新的集合

有很多時(shí)候我們會(huì)遇到這樣的場景,就是要將一個(gè)list中的某一個(gè)元素中的某一屬性單獨(dú)拿出來放在一個(gè)新的list里面,這時(shí)候,我們就可以用以下的方法來進(jìn)行實(shí)現(xiàn):

List<User> userList = new ArrayList<>();
List<String> nameList= userList.stream().map(User::getName).collect(Collectors.toList());

2.將對(duì)象集合中的某個(gè)屬性取出,用逗號(hào)拼接成一個(gè)字符

2.1 可以foreach循環(huán)直接拼接對(duì)象該屬性

//用逗號(hào)分割
StringJoiner stringJoiner = new StringJoiner(",");

userList.forEach(user -> {
	//將實(shí)體中的某個(gè)字段獲取到 添加到stringJoiner
    stringJoiner.add(user.getName());
});

//最終得到的字符串
String toString = stringJoiner.toString();

2.2 進(jìn)行1操作(將某個(gè)屬性取出組成新的集合)后,將新的集合用逗號(hào)拼接

//利用Guava的Joiner
String nameListStr = Joiner,on(",").join(nameList);

//利用Apache Commons的StringUtils
String nameListStr = StringUtils.join(nameList.toArray(), ",");

3.將用逗號(hào)拼接的字符串轉(zhuǎn)換成String集合

String str = "hudson,zhuang,lisa";
List<String> result = Arrays.asList(str.split(","));

4.將對(duì)象集合利用Java8新特性按照某一屬性進(jìn)行分組

//例如這里將User類的集合userList按照性別進(jìn)行分組
Map<String, List<User>> groupBySex = new HashMap<>();
groupBySex = userList.stream().collect(Collectors.groupingBy(User::getSex));

//獲得男性集合
List<User> manList = groupBySex.get("男");

//寫循環(huán)
groupBySex.keySet().for

純粹記錄一下

總結(jié)

到此這篇關(guān)于java取出list中某幾個(gè)屬性組成一個(gè)新集合的幾種方式的文章就介紹到這了,更多相關(guān)java取出list屬性組成新集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 總結(jié)Java集合類操作優(yōu)化經(jīng)驗(yàn)

    總結(jié)Java集合類操作優(yōu)化經(jīng)驗(yàn)

    本文主要介紹的就是集合框架的使用經(jīng)驗(yàn),告訴大家如何高效、方便地管理對(duì)象,所有代碼基于JDK7,需要的朋友可以參考下
    2015-08-08
  • 一文詳解RabbitMQ如何保證消息可靠性

    一文詳解RabbitMQ如何保證消息可靠性

    這篇文章將詳細(xì)介紹RabbitMQ的消息可靠性機(jī)制,如消息丟失,消息重復(fù)性消費(fèi),消息積壓等問題,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java NIO無法綁定指定IP和端口解決方案

    Java NIO無法綁定指定IP和端口解決方案

    這篇文章主要介紹了Java NIO無法綁定指定IP和端口解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 如何通過Java打印Word文檔

    如何通過Java打印Word文檔

    這篇文章主要介紹了如何通過Java打印Word文檔,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析

    arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析

    這篇文章主要為大家介紹了arthas?jprofiler做復(fù)雜鏈路的調(diào)用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目詳解

    構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目詳解

    在本篇內(nèi)容里小編給大家整理的是關(guān)于構(gòu)建SpringBoot+MyBatis+Freemarker的項(xiàng)目的具體步驟以及實(shí)例代碼,需要的朋友們參考下。
    2019-06-06
  • java并發(fā)編程專題(六)----淺析(JUC)Semaphore

    java并發(fā)編程專題(六)----淺析(JUC)Semaphore

    這篇文章主要介紹了java JUC)Semaphore的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 解析Apache Dubbo的SPI實(shí)現(xiàn)機(jī)制

    解析Apache Dubbo的SPI實(shí)現(xiàn)機(jī)制

    SPI全稱為Service Provider Interface,對(duì)應(yīng)中文為服務(wù)發(fā)現(xiàn)機(jī)制。SPI類似一種可插拔機(jī)制,首先需要定義一個(gè)接口或一個(gè)約定,然后不同的場景可以對(duì)其進(jìn)行實(shí)現(xiàn),調(diào)用方在使用的時(shí)候無需過多關(guān)注具體的實(shí)現(xiàn)細(xì)節(jié)
    2021-06-06
  • Maven里面沒有plugins dependence問題解決

    Maven里面沒有plugins dependence問題解決

    在整合Nacos和Dubbo時(shí),出現(xiàn)Maven錯(cuò)誤可以通過檢查父模塊的依賴解決,問題源于MySQL驅(qū)動(dòng)版本不兼容,移除特定依賴并刷新pom文件可恢復(fù)項(xiàng)目,執(zhí)行clean命令,查看報(bào)錯(cuò),感興趣的可以了解一下
    2024-10-10
  • 使用@Autowired注解警告Field injection is not recommended的解決

    使用@Autowired注解警告Field injection is not recommended的解決

    這篇文章主要介紹了使用@Autowired注解警告Field injection is not recommended的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論