最近项目中需要对list集合中的重复值进行处理,list数据去重,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。
但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢?
1、将dede里面的这个{dede:list pagesize='10' titlelen='100' orderby='id' orderway='desc'}去掉,去查看一下是不是这个写错了,结果显示的是只出现了一次下方的代码。如下图,那就证明不是dedelist的问题。2。
试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。
先给你一个看看是不是你需要的好了,// 利用 Set 的特性,将所有项目放入 Set //中即可移除重复的项目Set<String> stringSet = new HashSet<String>();for (String element : duplicateArray) {stringSet.add(element。
//set集合去重,不打乱顺序 public static void main(String[] args){ List<String> list = new ArrayList<String>();list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); Set set = new HashSet();List newList = new ArrayList();for (String cd:list) { if(set.add(cd)){ newList.add(cd); } } System.out.println( "去重后的集合: " + newList);}123456789161718 //遍历后判断赋给另一个list集合 public static void main(String[] args){ List<String> list = new ArrayList<String>();list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); List<String> newList = new ArrayList<String>();for (String cd:list) { if(!newList.contains(cd)){ newList.add(cd); } } System.out.println( "去重后的集合: " + newList);}1234567891617 //set去重 public static void main(String[] args){ List<String> list = new ArrayList<String>();list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); Set set = new HashSet();List newList = new ArrayList();set.addAll(list); newList.addAll(set); System.out.println( "去重后的集合: " + newList);}12345678916 //set去重(缩减为一行) public static void main(String[] args){ List<String> list = new ArrayList<String>();list.add("aaa"); list.add("bbb"); list.add("aaa"); list.add("aba"); list.add("aaa"); List newList = new ArrayList(new HashSet(list));System.out.println( "去重后的集合: " + newList);}12345678910111213
通过HashSet删除public static void removeDuplicate(List list) {HashSet h = new HashSet(list);list.clear();list.addAll(h);System.out.println(list);}3、删除重复元素,并保持顺序。(我没试)public static void。
/去重并且按照自然顺序排列List newList = new ArrayList(new TreeSet(list));
问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。直观方法 最简单的思路就是:这样也可行,但是看起来不够爽。用set 另外一个解决方案就是用set:代码如下:ids = [1,4,3,3,4,2,3,4,5,6,1]ids。