<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          List去除重復數(shù)據(jù)的五種方式

          共 4805字,需瀏覽 10分鐘

           ·

          2021-06-20 21:25

          鏈接:https://blog.csdn.net/qq_37939251/article/details/90713643

          以下介紹五種 - 不同的方法去除 Java 中 ArrayList 中的重復數(shù)據(jù)

          1、使用 LinkedHashSet 刪除 arraylist 中的重復數(shù)據(jù)

          LinkedHashSet 是在一個 ArrayList 刪除重復數(shù)據(jù)的最佳方法。LinkedHashSet 在內部完成兩件事:

          • 刪除重復數(shù)據(jù)

          • 保持添加到其中的數(shù)據(jù)的順序

          Java 示例使用 LinkedHashSet 刪除 arraylist 中的重復項。在給定的示例中,numbersList 是包含整數(shù)的 arraylist,其中一些是重復的數(shù)字。

          搜索公縱號:MarkerHub,關注回復[ vue ]獲取前后端入門教程!

          例如 1,3 和 5. 我們將列表添加到 LinkedHashSet,然后將內容返回到列表中。結果 arraylist 沒有重復的整數(shù)。

          import java.util.ArrayList;
          import java.util.Arrays;
          import java.util.LinkedHashSet;
           
          public class ArrayListExample
          {
              public static void main(String[] args)
              {
           
                  ArrayList<Integer> numbersList = new ArrayList<>(Arrays.asList(1123334566678));
           
                  System.out.println(numbersList);
           
                  LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(numbersList);
           
                  ArrayList<Integer> listWithoutDuplicates = new ArrayList<>(hashSet);
           
                  System.out.println(listWithoutDuplicates);
              }
          }

          輸出結果

          [1123334566678]
           
          [12345678]

          2、使用 java8 新特性 stream 進行 List 去重

          要從 arraylist 中刪除重復項,我們也可以使用 java 8 stream api。使用 steam 的 distinct() 方法返回一個由不同數(shù)據(jù)組成的流,通過對象的 equals()方法進行比較。

          收集所有區(qū)域數(shù)據(jù) List 使用 Collectors.toList()。

          Java 程序,用于在不使用 Set 的情況下從 java 中的 arraylist 中刪除重復項。

          import java.util.ArrayList;
          import java.util.Arrays;
          import java.util.List;
          import java.util.stream.Collectors;
           
          public class ArrayListExample
          {
              public static void main(String[] args)
           
              {
           
                  ArrayList<Integer> numbersList = new ArrayList<>(Arrays.asList(1123334566678));
                  System.out.println(numbersList);
                  List<Integer> listWithoutDuplicates = numbersList.stream().distinct().collect(Collectors.toList());
           
                  System.out.println(listWithoutDuplicates);
           
              }
           
          }

          輸出結果

          [1123334566678]
           
          [12345678]

          3、利用 HashSet 不能添加重復數(shù)據(jù)的特性 由于 HashSet 不能保證添加順序,所以只能作為判斷條件保證順序:

          private static void removeDuplicate(List<String> list) {
              HashSet<String> set = new HashSet<String>(list.size());
              List<String> result = new ArrayList<String>(list.size());
              for (String str : list) {
                  if (set.add(str)) {
                      result.add(str);
                  }
              }
              list.clear();
              list.addAll(result);
          }

          4、利用 List 的 contains 方法循環(huán)遍歷, 重新排序, 只添加一次數(shù)據(jù), 避免重復:

          private static void removeDuplicate(List<String> list) {
              List<String> result = new ArrayList<String>(list.size());
              for (String str : list) {
                  if (!result.contains(str)) {
                      result.add(str);
                  }
              }
              list.clear();
              list.addAll(result);
          }

          5、雙重 for 循環(huán)去重

          for (int i = 0; i < list.size(); i++) { 
          for (int j = 0; j < list.size(); j++) { 
          if(i!=j&&list.get(i)==list.get(j)) { 
          list.remove(list.get(j)); 
           } 

          END


          推薦閱讀:
          怎么接私貨?這個渠道你100%有用!請收藏!

          ,在看
          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无码AV大香线蕉伊人 | 亚洲无码精品一区 | 亚洲天堂在线视频观看 | 水蜜桃视频在线免费观看 | 成人午夜网址 |