How to get a list of specific fields values from objects stored in a list?

后端 未结 12 1056
长发绾君心
长发绾君心 2021-01-31 08:23

Say I have an list of objects with two fields field1 and field2, both of String type.

How do I get a list of all field1 values wit

12条回答
  •  闹比i
    闹比i (楼主)
    2021-01-31 09:03

    Fortunately, you can do this using Java 8 - Streams

    Assume you have an entity named YourEntity

    public class YourEntity {
    
        private String field1;
        private String field2;
    
        public YourEntity(String field1, String field2) {
            this.field1 = field1;
            this.field2 = field2;
        }
    
        public void setField1(String field1) {
            this.field1 = field1;
        }
    
        public void setField2(String field2) {
            this.field2 = field2;
        }
    
        public String getField1() {
            return field1;
        }
    
        public String getField2() {
            return field2;
        }
    }
    

    Declare you list of YourEntity using:

    List entities = Arrays.asList(new YourEntity("text1", "text2"), new YourEntity("text3", "text4"));
    

    You can extract the list of field1 in one shot in this way:

    import java.util.stream.Collectors;
    
    List field1List = entities.stream().map(YourEntity::getField1).collect(Collectors.toList());
    

    Or in this way

    import java.util.stream.Collectors;
    
    List field1List = entities.stream().map(urEntity -> urEntity.getField1()).collect(Collectors.toList());
    

    You can print all the items also using java 8 :)

    field1List.forEach(System.out::println);
    

    Output

    text1
    text3
    

提交回复
热议问题