关于List对象的重复项清除和倒序处理

List对象是Android开发中需要常用到的一个东东。

private List<String> li = null;
li.add("abc");
li.add("123");
li.add("def");
li.add("123");
li.add("xyz");
for (int i=0; i<li.size()-1; i++){
System.out.println(li.get(i));
}

然后就可以将li中的条目逐一输出出来了:(“abc”, “123”, “def”, “123”, “xyz”)

如果想剔除li中重复的item,则可以通过如下函数实现:

    public static List<String> removeDuplicateWithOrder(List<String> list) {
Set<Object> set = new HashSet<Object>();
List<String> newList = new ArrayList<String>();
// list = reverseList(list);
for (Iterator<String> iter = list.iterator(); iter.hasNext();) {
Object element = iter.next();
if (set.add(element))
newList.add(element.toString());
}
// newList = reverseList(newList);
return newList;
}

通过调用上面的函数:private List<String> li2 = removeDuplicateWithOrder(li),然后通过一个循环输出li2的items:
(“abc”, “123”, “def”, “xyz”)

如果想要倒序剔除,则还需要一个倒序函数:

    public static List<String> reverseList(List<String> list) {
List<String> revList = new ArrayList<String>();
for(int i=list.size()-1; i>=0; i--){
revList.add(list.get(i));
}
return revList;
}

测试的时候,将removeDuplicateWithOrder中的两行注释放开就可以了,然后输出序列为:(“abc”, “def”, “123”, “xyz”)
即先倒序删除重复的,然后再次倒序回来。

原文地址:https://www.cnblogs.com/wzc0066/p/2948252.html