采用java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
采用java8 lambda表达式 实现java list 交集/并集/差集/去重并集
一般的javaList 交、并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的javaList对象,采用java8 lambda表达式流操作则可以不影响原始list对象而得到两个javaList对象的 交、并、差集。
采用java8 lambda表达式 实现java list 交集/并集/差集/去重并集
一般的javaList 交、并集采用简单的 removeAll retainAll 等操作,不过这也破坏了原始的javaList对象,采用java8 lambda表达式流操作则可以不影响原始list对象而得到两个javaList对象的 交、并、差集。
package com.kaigejava;
import java.util.*;
import static java.util.stream.Collectors.toList;
/**
* @author admin
*/
public class MyTest {
/**
* 用于测试的对象类
*/
static class Student {
/**
* 姓名
*/
private String name;
/**
* 学号 唯一值
*/
private String code;
public Student(String name, String code) {
this.name = name;
this.code = code;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof Student)) {
return false;
}
Student student = (Student) o;
return code.equals(student.getCode());
}
@Override
public int hashCode() {
return Objects.hash(code);
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", code='" + code + '\'' +
'}';
}
public String getName() {
return name;
}
public String getCode() {
return code;
}
}
/**
* 对象类型的处理
*/
public static void showObjectDeal() {
List<Student> list1 = new ArrayList<>();
list1.add(new Student("name1","1001"));
list1.add(new Student("name2","1002"));
list1.add(new Student("name3","1003"));
List<Student> list2 = new ArrayList<>();
list2.原创不易,完成人机校验,阅读全文
相关推荐
JSJS 正则表达式(数字、正则)JAVA8新特性Java8使List转为Map工作小总结【小工具】一个Java批量修改指定文件夹下的文件名。复习下File及政治表达式工作小总结Scheduled 每月最后一天晚上8点 ;关于@Scheduled cron表达式中不支持每月最后一天`L`的解决方案工作小总结Java8中将list转换为用逗号隔开的字符串的几种方法其他随笔Java中常见数据结构:list与map -底层如何实现工作小总结Java中list模拟分页工作小总结&小工具类JAVA 根据指定目录:C:\Users\n\Desktop\地铁发票获取所有文件名称。然后使用正则表达式提取出文件名字中数字部分。注意,数字带有小数点。 然后封装成集合对象。对象中两个属性:文件名称,金额。怎么写