zoukankan      html  css  js  c++  java
  • Java中ArrayList去重方法

    方法一:

    该方法不需要重新创建新的数组可以直接遍历

    public class TestCopy {
        public static void main(String[] args){
            ArrayList<String> list = new ArrayList<>();
            list.add("张三");
            list.add("李四");
            list.add("王五");
            list.add("赵六");
            list.add("田七");
            list.add("朱八");
            list.add("王一");
            list.add("李四");
            list.add("王五");
            list.add("王五");
            list.add("王一");
            for (int i = 0; i < list.size(); i++) {
                // 取出一个元素
                String val = list.get(i);
                System.out.println("i:"+val+"	");
                // 循环取出str元素之后的其他元素进行对比
                for (int j = i+1; j < list.size(); j++) {
                    String s = list.get(j);
                    System.out.print("j:"+s);
                    // 比较两个元素是否相等
                    if (val.equals(s)){
                        // 相等则移除该元素
                        list.remove(val);
                        // 由于移除后其他元素前移,所以需要重新--回到原位
                        i--;
                    }
                }
                System.out.println("
    ====================");
            }
            System.out.println("去重后:"+list);
        }
    }

    方法二:

    创建两个数组,一个是旧数组,存着没去重的值;一个是新数组,存去重后的值

    public class TestCopy {
        public static void main(String[] args){
            // 创建两个数组一个存一个取,一个是去重前的数组,一个是去重后的数组
            ArrayList<String> list = new ArrayList<>();
            ArrayList<String> list1 = new ArrayList<>();
            list.add("张三");
            list.add("李四");
            list.add("王五");
            list.add("赵六");
            list.add("田七");
            list.add("朱八");
            list.add("王一");
            list.add("李四");
            list.add("王五");
            for (String s : list) {
                // 取出原数组中的元素进行对比,如果新数组中存在就不存,不存在存入新数组中
                if (!list1.contains(s)){
                    // 如果新数组中存在则不存
                    list1.add(s);
                }
            }
            System.out.println("去重前:"+list);
            System.out.println("去重后:"+list1);
        }
    }

    方法三:

    使用set去重

    public class TestCopy {
        public static void main(String[] args){
            ArrayList<String> list = new ArrayList<>();
            LinkedHashSet<String> set = new LinkedHashSet<>();
            list.add("张三");
            list.add("李四");
            list.add("王五");
            list.add("赵六");
            list.add("田七");
            list.add("朱八");
            list.add("王一");
            list.add("李四");
            list.add("王五");
            // 储存到set中去重
            for (String s : list) {
                set.add(s);
            }
            list.clear();
            for (String s : set) {
                // 再将set中的值储存进list中,方便使用
                list.add(s);
            }
            System.out.println(list);
        }
    }
  • 相关阅读:
    cat > file << EOF 的用法
    jemter参数化是如何取值的?(数据分配)
    使用elasticdump迁移es数据
    阿里云SLB的http强制转https
    Centos7主机安装Cockpit管理其他主机
    CentOS 7配置Chrony服务进行时间同步
    Nginx负载均衡设置max_fails和fail_timeout
    openresty(nginx) 配置 stream 转发
    rabbitmq的内存节点和磁盘节点
    nginx实现vue的web页面项目集群负载
  • 原文地址:https://www.cnblogs.com/MoonASixpence/p/14890398.html
Copyright © 2011-2022 走看看