java 两个集合比较_java 两个List集合各种情况对比处理

Lambda作为函数式编程中的基础部分,在其他编程语言(例如:Scala)中早就广为使用,但在JAVA领域中发展较慢,直到java8,才开始支持Lambda。

抛开数学定义不看,直接来认识Lambda。Lambda表达式本质上是匿名方法,其底层还是通过invokedynamic指令来生成匿名类来实现。它提供了更为简单的语法和写作方式,允许你通过表达式来代替函数式接口。在一些人看来,Lambda就是可以让你的代码变得更简洁,完全可以不使用——这种看法当然没问题,但重要的是lambda为Java带来了闭包。得益于Lamdba对集合的支持,通过Lambda在多核处理器条件下对集合遍历时的性能提高极大,另外我们可以以数据流的方式处理集合——这是非常有吸引力的。

1. List去重:

/**

* java List Strasm去重

* @param args

*/

public static void main(String[] args) {

List list = new ArrayList<>();

list.add("1");

list.add("1");

list.add("2");

list.add("3");

list.add("4");

list.add("3");

list.add("4");

System.out.println("List去重前:" + list);

list = list.stream().distinct().collect(Collectors.toList());

System.out.println("List去重后:" + list);

}

测试结果:

13c390844de049df6fce69b6382e122e.png

2. List根据对象某个字段去重:

import java.util.ArrayList;

import java.util.List;

import java.util.stream.Collectors;

/**

*

测试user

* @version 1.0

* @author li_hao

* @date 2018年7月18日

*/

public class User {

private String userid;

private String username;

public User(String userid, String username) {

super();

this.userid = userid;

this.username = username;

}

public String getUserid() {

return userid;

}

public void setUserid(String userid) {

this.userid = userid;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

@Override

public String toString() {

return "User [userid=" + userid + ", username=" + username + "]";

}

/**

* list Stream根据对象userid字段去重

*/

public static void main(String[] args) {

List list = new ArrayList();

list.add(new User("1","张三"));

list.add(new User("1"

你可能感兴趣的:(java,两个集合比较)