zoukankan      html  css  js  c++  java
  • 关于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”)
    即先倒序删除重复的,然后再次倒序回来。

  • 相关阅读:
    CISCO DHCP全攻略详解
    CentOS配置远程日志服务器
    CentOS下的日志切割
    CentOS日志的简单介绍
    H3C Telnet 配置
    CentOS7图形界面与命令行界面切换
    思科4506E做ehterchannel故障排查
    EtherChannel Cisco 端口聚合详解
    算法练习2之单链表求和
    Retrofit2的GsonConverterFactory.create()和RxJava2CallAdapterFactory.create()的实现过程以及执行过程
  • 原文地址:https://www.cnblogs.com/wzc0066/p/2948252.html
Copyright © 2011-2022 走看看