利用Stream流,把List<实体类>转List<String>,或原本List<String>转变成自己需要的List<String>。下面是代码
.distinct()是去重
.map()里面写的是需要取出来的字段
.filter()里面是过滤条件,true或者false
.collect(Collectors.toList()),这个query是一个Java代码片段,使用了Java 8中的Stream API和Collectors.toList()方法,该方法用来将Stream中的元素收集到一个List中
package Tool; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import AnZhong.Student; public class convertMap { public static void main(String[] args) { List<Student> listStudent = new ArrayList<>(); List<String> numberList = Arrays.asList("一","二","三","四","五"); Student student = new Student(); student.setAge("11"); student.setName("万能C"); student.setId(1); listStudent.add(student); Student student2 = new Student(); student2.setAge("11"); student2.setName("admin"); student2.setId(2); listStudent.add(student2); Student student3 = new Student(); student3.setAge("13"); student3.setName("Jack"); student3.setId(3); listStudent.add(student3); Student student4 = new Student(); student4.setAge("16"); student4.setName("Jack"); student4.setId(3); listStudent.add(student4); /*** * -- .distinct()是去重 * -- .map()里面写的是需要取出来的字段 * -- .filter()里面是过滤条件,true或者false * -- .collect(Collectors.toList()),这个query是一个Java代码片段, * 使用了Java 8中的Stream API和Collectors.toList()方法。 * 该方法用来将Stream中的元素收集到一个List中 * ***/ List<String> list2 = listStudent.stream().map(s -> s.getName()).distinct().collect(Collectors.toList()); //.添加过滤,取年龄不等于13的名字 List<String> list3 = listStudent.stream().filter(f -> !f.getAge().equals("13")).map(s -> s.getName()).collect(Collectors.toList()); //在已有的List修改里面的值,转成一个新的List<String> List<String> list4 = numberList.stream().map(number -> "数字 " + number + "L").collect(Collectors.toList()); System.out.println("list2(去重) "+list2); System.out.println("list3(添加过滤条件): "+list3); System.out.println("list4(修改里面内容): "+list4); } }
输出结果: