-
慕村9548890
public class dropList {public static void main(String[] args) { String[][] mylist = new String[][]{{"1","2"},{"3","2"},{"2","3"}}; List<String[]> list = Arrays.asList(mylist); TreeSet<String[]> ts = new TreeSet<String[]>(new Comparator<String[]>(){ @Override public int compare(String[] o1, String[] o2) { TreeSet<String> set1 = new TreeSet<String>(Arrays.asList(o1)); TreeSet<String> set2 = new TreeSet<String>(Arrays.asList(o2)); Collection<String> sub = CollectionUtils.disjunction(set1, set2); if (sub.size()==0) { return 0; } String p = sub.iterator().next(); if(set1.contains(p)){ return 1; } return -1; } }); ts.addAll(list); for(String[] temp : ts ){ System.out.println(Arrays.toString(temp)); }}}
-
aluckdog
treeSet {treeSet ,treeSet}
-
慕的地8271018
数据结构的基本知识,请使用Set或其相关子类。
-
撒科打诨
关键在于list中放的是什么类型的对象。比如HashMap,HashSet还是其他什么类型,{1,2}和{2,3}是数组还是什么?
-
犯罪嫌疑人X
把{1,2} {2,3} {3,2} 转成HashSet,{2,3}和{3,2}应该就一样了
-
一只甜甜圈
我还是直接给你贴代码吧,基本思路就是根据Set中的数据不能重复实现的……[code]/*** list去重复* @param list* @return*/public static List removeDuplicateWithOrder(List list) {Set set = new HashSet();List newList = new ArrayList();for (Iterator iterator = list.iterator(); iterator.hasNext();) {BorrowedRecord record = iterator.next();String objectId = record.getObjectId();if (set.add(objectId))newList.add(record);}return newList;}
-
慕标琳琳
如果是我,我会这样做:首先,重写 List 中的对象的 equals 方法。List 中的对象:{1,2}、{2,3}、{3,2},定义为:[code="java"]public class MyObj{int key1;int key2;//get/set 方法,略//下面的方法,把 {2,3} 和 {3,2} 判断为相等public boolean equals(Object obj) {...}[/code]然后,新建一个空的 LinkedHashSet,把 list 中的数据用 addAll 方法全部加入进去(这里,加入过程中,set 会判断并发现 {2,3}{3,2} 相等,就不会把后面的对象加入到 set 中,而只保留前面一个。用 LinkedHashSet 是为了保持 list 一样的顺序,如果不关心顺序,直接用 HashSet 即可);最后,把 list 用 clear 方法清空,再把 set 的内容全部加入到 list 中去。这样,list 中就是一个没有重复元素的列表了。