利用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);
}
}
输出结果: