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