ArrayList基本操作
ArrayList基本操作
工作中看到了一些关于Stream的操作,记录一下,方便之后查阅
1. 对List进行分页
// 对List进行分页
public static void main(String[] args) {
int pageCurrent = 2;
int pageSize = 2;
List<String> pageList = new ArrayList<>();
pageList.add("AA");
pageList.add("BB");
pageList.add("CC");
pageList.add("DD");
pageList.add("EE");
pageList.add("FF");
pageList.add("GG");
pageList.add("HH");
List<String> collect = pageList.stream().skip((pageCurrent - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
System.out.println(collect);
}
// 输出结果
[CC, DD]
2. 根据List元素中的字段进行分组
// 根据List元素中的字段进行分组
public static void main(String[] args) {
Student student1 = new Student();
student1.setName("张三");
student1.setAge(18);
student1.setAddress("北京");
Student student2= new Student();
student2.setName("李四");
student2.setAge(19);
student2.setAddress("东京");
List<Student> list = new ArrayList<>();
list.add(student1);
list.add(student2);
Map<String, List<Student>> map = list.stream().collect(Collectors.groupingBy(Student::getAddress));
System.out.println(map);
}
// 输出结果
{东京=[Student{name='李四', address='东京', age=19}], 北京=[Student{name='张三', address='北京', age=18}]}
3. 将List元素中的字段取出生成新的List
// 将List元素中的字段取出生成新的List
public static void main(String[] args) {
Student student1 = new Student();
student1.setName("张三");
student1.setAge(18);
student1.setAddress("北京");
Student student2= new Student();
student2.setName("李四");
student2.setAge(19);
student2.setAddress("东京");
List<Student> list = new ArrayList<>();
list.add(student1);
list.add(student2);
List<String> addressList = list.stream().map(Student::getAddress).collect(Collectors.toList());
System.out.println(addressList);
}
// 输出结果
[北京, 东京]
4. 根据List元素中的字段进行分组
// 根据List元素中的字段进行分组
public static void main(String[] args) {
Student student1 = new Student();
student1.setName("张三");
student1.setAge(18);
student1.setAddress("北京");
Student student2= new Student();
student2.setName("李四");
student2.setAge(19);
student2.setAddress("东京");
List<Student> list = new ArrayList<>();
list.add(student1);
list.add(student2);
list.sort((x, y) -> y.getName().compareTo(x.getName()));
System.out.println(list);
}
// A code block
[Student{name='李四', address='东京', age=19}, Student{name='张三', address='北京', age=18}]
未完…