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+"\t"); // 循环取出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("\n===================="); } 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); } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM