精华内容
下载资源
问答
  • 主要介绍了java8从list集合中取出某一属性的集合案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了javalist中取出对象并获得属性值的方法,大家参考使用
  • 想了解java8从list集合中取出某一属性的集合案例的相关内容吗,*饼饼*在本文为您仔细讲解java8 list属性值集合的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java8,list集合,属性值集合,下面大家...

    想了解java8从list集合中取出某一属性的值的集合案例的相关内容吗,*饼饼*在本文为您仔细讲解java8 list取属性值集合的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java8,list集合,属性值集合,下面大家一起来学习吧。

    我就废话不多说了,大家还是直接看代码吧~

    List list = new ArrayList();

    Order o1 = new Order("1","MCS-2019-1123");

    list.add(o1 );

    Order o2= new Order("2","MCS-2019-1124");

    list.add(o2);

    Order o3= new Order("3","MCS-2019-1125");

    list.add(o3);

    List orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());

    System.out.println("输出单号集合:"+orderNoList);

    List idList=list.stream().map(Order::getId()).collect(Collectors.toList());

    System.out.println(idList)

    结果

    输出第一个:

    ["MCS-2019-1123", "MCS-2019-1124", "MCS-2019-1125"]

    [1, 2, 3]

    order类:

    public class Order{

    String id;

    String orderNo;

    public Order(String id, String orderNo) {

    this.id = id;

    this.orderNo= orderNo;

    }

    public String getId() {

    return id;

    }

    public void setId(String order) {

    this.id= id;

    }

    public String getOrderNo() {

    return orderNo;

    }

    public void setOrderNo(String message) {

    this.orderNo= orderNo;

    }

    }

    补充知识:java8快速对list集合的筛选计算取值总结

    在我们日常开发过程中,有很多场景需要对list集合进行取值筛选,以下是我对常用的一些知识点进行总结

    首先,创建一个需要用到的对象,例如学生对象,有相关字段:姓名,年龄,性别

    public class Student {

    private String name;

    private int age;

    private String sex;

    public Student( String name, int age,String sex) {

    this.age = age;

    this.name = name;

    this.sex = sex;

    }

    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;

    }

    public String getSex() {

    return sex;

    }

    public void setSex(String sex) {

    this.sex = sex;

    }

    }

    其次,对这些字段属性进行赋值

    Student s1 = new Student("小金",20,"女");

    Student s2 = new Student("小宋",21,"女");

    Student s3 = new Student("小张",25,"男");

    Student s4 = new Student("小王",27,"男");

    Student s5 = new Student("小王",30,"未知");

    List list = new ArrayList<>();

    list.add(s1);

    list.add(s2);

    list.add(s3);

    list.add(s4);

    list.add(s5);

    1、遍历-foreach

    使用stream流进行foreach遍历

    list.stream().forEach(student->{

    //处理逻辑,打印出所有学生的姓名

    System.out.println(student.getName());

    });

    运行结果:

    20200817094602.jpg

    2、筛选list

    filter函数的()里,应该放逻辑,判断条件,将符合条件的放到resultList中

    代码如下,筛选集合中所有性别为女的学生

    List resultList = list.stream().filter(student -> Objects.equals(student.getSex(),"女")).collect(Collectors.toList());

    resultList.stream().forEach(student->{

    System.out.println(student.getName());

    });

    运行结果:

    20200817094612.jpg

    3、list去重

    根据性别去重

    List unique = list.stream().collect(Collectors.collectingAndThen(

    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Student::getSex))), ArrayList::new));

    unique.stream().forEach(student->{

    System.out.println(student.getName());

    });

    运行结果:

    20200817094620.jpg

    4、取出list集合对象中某一个属性

    取出每个对象中的姓名组成一个新的集合

    List listStr = list.stream().map(Student::getName).collect(Collectors.toList());

    去重

    List listNew = listStr .stream().map(Student::getName).distinct().collect(Collectors.toList());

    运行结果:

    20200817094628.jpg

    5、list与map互转,并根据某一属性进行分组

    list转map (下方studentMap运行会报错,因为作为key值,name不能重复,所以正式开发中应该使用唯一性id作为key值)

    Map studentMap = list.stream().collect(Collectors.toMap(Student::getName, student -> student));

    list转数组

    String[] listStrs = list.stream()

    .filter(e -> Objects.equals(e.getSex(), "男"))

    .sorted(Comparator.comparing(Student::getName))

    .map(Student::getName).toArray(String[]::new);

    list转map并且分组

    Map> listMap = list.stream().collect(Collectors.groupingBy(Student::getSex));

    运行结果:

    20200817094641.jpg

    根据对象某些属性,进行分组

    Map studentsMap= list.stream()

    .collect(Collectors.groupingBy(f -> Arrays.asList(f.getAge),f.getSex())));

    map转list

    List collect = studentMap.values().stream().collect(Collectors.toList());

    6、过滤属性为空的字段

    Student s6 = new Student("",30,"男");

    list.add(s6);

    List stringList = list.stream().map(s -> s.getName()).filter(s -> !s.isEmpty()).collect(Collectors.toList());

    7、根据某一属性进行计算

    根据年龄求最大值、最小值、平均值、总和、个数

    IntSummaryStatistics resultNum = list.stream().mapToInt((item)->item.getAge()).summaryStatistics();

    System.out.println("max:"+resultNum.getMax());

    System.out.println("min:"+resultNum.getMin());

    System.out.println("sum:"+resultNum.getSum());

    System.out.println("average:"+resultNum.getAverage());

    System.out.println("count:"+resultNum.getCount());

    运行结果:

    20200817094651.jpg

    注意:

    1、求和有三种类型,mapToInt,mapToLong,mapToDouble

    2、如果是Bigdecimal数值类型,则计算方法如下,(新建对象)

    Frult frult1 = new Frult("西瓜",new BigDecimal(1));

    Frult frult2 = new Frult("梨子",new BigDecimal(2));

    List frultList = new ArrayList<>();

    frultList.add(frult1);

    frultList.add(frult2);

    BigDecimal totalPrice = frultList.stream().map(Frult::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);

    //或者用mapToInt()进行强转(int->Bigdecimal)

    结语:本人目前用到这么多,希望各位有更好的或者其它的用法给予建议与评论,有错误也希望能得到指正!也希望大家多多支持。

    相关文章

    展开全文
  • 今天小编就为大家分享篇关于JAVA JDK8 List获取属性列表,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 使用lambda表达式获取list所有对象的某个属性以及获取特定属性某一个对象获取List所有对象的某个属性获取List中某个特定属性的对象 获取List所有对象的某个属性 案例如下:获取users中的所有userName public...

    使用lambda表达式获取list中所有对象的某个属性以及获取特定属性的某一个对象

    获取List中所有对象的某个属性

    案例如下:获取users中的所有userName

    public class UserEntity implements Serializable {
    	private Integer id;
        private String userName;
        private String phone;
    }
    
    public static void main(string args[]){
    	List<UserEntity> users=new ArrayList<>();
     
        users.add(new UserEntity(1,"张三","18399990000"));
        users.add(new UserEntity(2,"王五","18399990023"));
        users.add(new UserEntity(3,"里斯","18399990005"));
        // 获取list中所有对象的某个属性
        List<String> courseIds=  users.stream().map(UserEntity::getUserName).collect(Collectors.toList());
    }
    

    List<String> courseIds= users.stream().map(UserEntity::getUserName).collect(Collectors.toList());

    获取List中某个特定属性的对象

    案例:假设对象是Cart购物车,里面有product_id,product_name,count等。需要从集合中查找商品id是1的商品对象。用表达式来查询代码很简洁。

    // Cart对象
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public class Cart {
        /**
         * 总库商品ID
         */
        @JsonProperty(value = "product_id")
        private Long productId;
        /**
         * 商品名称
         */
        @JsonProperty(value = "name")
        private String productName;
        /**
         * 数量
         */
        @JsonProperty("count")
        private Integer count;
    }
    

    模拟一个Cart集合,假设有两个商品牛腩饭和蛋炒饭,id是1和2。

    List<Cart> cartlist = new ArrayList<Cart> (2){{
      Cart cart1 = new Cart();
      cart1.setProductId(1L);
      cart1.setProductName("牛腩饭");
      cart1.setCount(1);
      add(cart1);
      Cart cart2 = new Cart();
      cart2.setProductId(2L);
      cart2.setProductName("蛋炒饭");
      cart2.setCount(1);
      add(cart2);
    }};
    // 获取list中特定属性值的对象
    Optional<Cart> cartOptional = cartlist.stream().filter(item -> item.getProductId().equals(1L)).findFirst();
    if (cartOptional.isPresent()) {
        // 存在
        Cart cart =  cartOptional.get();
    } else {
        // 不存在
    }
    

    Optional<Cart> cartOptional = cartlist.stream().filter(item -> item.getProductId().equals(1L)).findFirst();
    或者是:
    Cart cart = cartlist.stream().filter(item -> item.getProductId().equals(1L)).findFirst().get();

    展开全文
  • java list根据对象的某个属性去重,java list根据对象的某个属性去重java list根据对象的某个属性去重
  • 获取List集合对象中某一属性值

    千次阅读 2020-11-09 22:24:59
    例:获取disposeList集合中CorpusMarkPage对象中的responseId属性,生成新的List集合 List responseIdList = disposeList.stream().map(CorpusMarkPage::getResponseId).collect(Collectors.toList());

    :获取disposeList集合中CorpusMarkPage对象中的responseId属性,生成新的List集合

    List responseIdList = disposeList.stream().map(CorpusMarkPage::getResponseId).collect(Collectors.toList());

    展开全文
  • 下面小编就为大家分享java根据List内对象的属性排序方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • List<Order> list = new ArrayList<User>(); Order o1 = new Order("1","MCS-2019-1123"); list.add(o1 ); Order o2= new Order("2","MCS-2019-1124"); list....
            List<Order> list = new ArrayList<User>();
            Order o1 = new Order("1","MCS-2019-1123");
            list.add(o1 );
            Order o2= new Order("2","MCS-2019-1124");
            list.add(o2);
            Order o3= new Order("3","MCS-2019-1125");
            list.add(o3);
            List<String> orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());
            System.out.println("输出单号集合:"+orderNoList);
            List<String> idList=list.stream().map(Order::getId()).collect(Collectors.toList());
            System.out.println(idList)
    

    结果

    输出第一个:["MCS-2019-1123", "MCS-2019-1124", "MCS-2019-1125"]
    [1, 2, 3]

    order类:

    public class Order{
         String id;
         String orderNo;
         
         public Order(String id, String orderNo) {
            this.id = id;
            this.orderNo= orderNo;
        }
        public String getId() {
            return id;
        }
        public void setId(String order) {
            this.id= id;
        }
        public String getOrderNo() {
            return orderNo;
        }
        public void setOrderNo(String message) {
            this.orderNo= orderNo;
        }
        
    }
    

     

    展开全文
  • java反射,获取所有属性、方法以及List集合类
  • 1、把list中的某一属性值(项目唯一id)取出来放到个单独的listList<Unit> unitlist = new ArrayList<>(); List<String> idList =unitlist.stream().map(Unit::getId).collect(Collectors....
  • 主要介绍了java8新特性将List中按指定属性排序过滤重复数据的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 个数组,里面装的都是对象.var array=[{"id": 52354541,"name": "比率","value": "55"},{"id": 43563123,"name": "比率","value": "88"},{"id": 32525763,"name": "比率","value": "76"}];如果是查找最大 可以...
  • List orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList()); https://blog.csdn.net/weixin_39702400/article/details/111895006 我就废话不多说了,大家还是直接看代码吧~ ...
  • 最近一直在写java的业务系统,后台对数据库的操作工作量巨大,这个是我在写代码时遇到的,总结出来的方法,希望能帮助到需要的人,什么也不多说了,直接上源码吧! 从数据库中取数据,根据MyBits返回结果主要有...
  • public class User implements Serializable { private Integer id; private String name;... List<Integer> collect = list.stream().map(User::getId).collect(Collectors.toList()); System.out.println(collect);
  • * 将旧对象的属性值与新对象的属性值做比较 记录修改的属性值名称 * @param oldObject 旧对象 * @param newObject 新对象 * @return 修改的对象属性值名称集合 */ public static List<String> ...
  • java8之list集合中取出某一属性的方法

    万次阅读 多人点赞 2017-12-13 23:54:45
    上代码 List list = new ArrayList(); User user1 = new User("第位","用户1"); list.add(user1); User user2 = new User("第二位","用户2"); list.add(user2); User user3 =
  • JavaList集合和枚举转换为数组解决方案最近在做项目的时候,经常遇到将将List集合中的对象的某个属性字段取出,然后组装成该字段属性对应类型的数组,也遇到了将个枚举中每个元素对应的取出,组装成该枚举...
  • List 根据实体属性搜索 工具类如下所示,主要使用了泛型,反射 入参: list,待查找的 list field: 要根据 list 中的哪个属性来查找 ,如上面的 TestModel 中的 name/value value: 要查找的为什么,如"demo", 查找 list ...
  • 下面小编就为大家带来java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • java8取出list中的对象的某一属性

    千次阅读 2020-07-21 09:59:25
    public class UserEntity implements Serializable { private Integer id; /** * 用户名 */ private String userName; /** * 用户手机号 */ private String phone; } ... List&l.
  • java实现后台用list接收前台重复的name属性 接收重复属性 后台数组接收前台重复的name
  • deviceIds:为需要对某个属性去重的集合 List<Integer> deviceIds = new ArrayList<>(); deviceDTOList.stream().filter( device -> { boolean flag = !deviceIds.contains(device.getId()); ...
  • java获取枚举类的所有属性

    千次阅读 2021-02-28 08:03:59
    :通过取项目某个包路径下的所有枚举类来获取该类的所有属性直接上java代码:package com.xxx.common.ennum;import cn.hutool.core.util.ClassUtil;import java.lang.reflect.Method;import java.util.ArrayList;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 420,301
精华内容 168,120
关键字:

java获取list某一属性的所有值

java 订阅
友情链接: VCTUXINDAIMA.rar