list是一个有序可重复的集合,其根本原因是,List的实现类里面维护的是一个Object数组,每添加一个元素,在数组上加一个元素,所以有序且可重复。Set集合的子类是一个无序不可重复的集合,其根本原因是,Set集合的子类维护的是一个HashMap,
set子类add的时候,是将元素放在HashMap的key的位置上,根据HashMap的特点,可以知道,key的位置是hash算出来的,并不是顺序增长的,值也放在对应的key位置上,所以,将一个list集合去重,很简单,代码如下:
List<String> stl = Arrays.asList("1","2","3","3","4","5");
System.out.println(JSON.toJSONString(stl));
//将list集合中数据自动去重
Set<String> strings = new HashSet<>(stl);
System.out.println(JSON.toJSONString(strings));
网友评论