java數組刪除重複元素專題及常見問題 - CSDN

2021-01-11 CSDN技術社區

package com.akfucc.zhidao;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;public class P124876743 { public static void main(String[] args) {  int[] nums = { 1, 2, 3, 3, 3, 3, 4 };  List<Integer> numList = new ArrayList<Integer>();  for (int i : nums)   numList.add(i);  System.out.println(numList);  // 做刪除  Iterator<Integer> it = numList.iterator();  int temp = -1;  if (it.hasNext())   temp = it.next();  while (it.hasNext()) {   int i = it.next();   if (i == temp) {    it.remove();   } else {    temp = i;   }  }  System.out.println(numList); }}

----

把數組中的元素取出放入一個HashSet中,這樣就可以過濾重複的值了。 

用hashset 重複的自動去掉了HashSet hashset=new HashSet();hashset。add(1);都加進去Iterator iterator=hashset。itertaor();做一個while循環 輸出就ok了 

----

如果你要得到的數組可以無序的話將原數組裡的元素放到HashSet中就行了,如果你想得到的數組還要之前的順序的話,就只能一個個比了,從頭開始遍歷,看每個元素跟它前面的元素有沒有重複有則刪掉。 

---

Integer str[] = {1,2,3,3,3,4};  Set <Integer>set=new TreeSet<Integer>(Arrays.asList(str));  Integer[] newArray=set.toArray(new Integer[set.size()]) ;  for(Integer i:newArray){   System.out.println(i);  }  //System.out.println(set); 

----

private static  int [ ]  supRep( int [ ]  x) {    int[] tempArray = new int[x.length];    boolean repeated = false;    int nbNonRep=0;    //Verify for each element    for (int i=0; i<x.length; i++){        for (int j=i+1; j<x.length; j++){            if (x[i]==x[j]){// x[i] is repeated                repeated = true;                break;            }        }        if (repeated == false){// a non repeated number            tempArray[nbNonRep++]=x[i];        }        repeated = false;    }    int[] resultArray = new int[nbNonRep];    System.arraycopy(tempArray, 0, resultArray, 0, nbNonRep);  return(resultArray); }    public static void main(String[] args) {          int [ ] arr = new int[]{2,5,6,6,8,12,3,5};          int [] a = supRep(arr);          for (int i = 0; i<a.length; i++){              System.out.print(a[i]+ " ");          }    } ---測試結果:run:2 6 8 12 3 5 成功生成(總時間:0 秒) ---當然,我是用兩個兩個數比較的,如果數據量非常大,比如幾萬幾十萬或者更多數字,最好做一個Tree,這樣瀏覽一遍你的Array就OK了 ---如果想要簡單,用ArrayList就可以了:          ArrayList myList = new ArrayList();          for (int i=0; i<arr.length; i++){              if (!myList.contains(arr[i])) myList.add(arr[i]);          }          for (int i = 0; i<myList.size();i++){              System.out.print(myList.get(i) + ", ");          }不過程序效率肯定是不高的 ArrayList:底層用數組實現的List 。特點:查詢效率高,增刪效率低 輕量級 線程不安全。HashSet:採用哈希算法來實現Set接口, 唯一性保證:重複對象equals方法返回為true ,重複對象hashCode方法返回相同的整數不同對象 哈希碼 儘量保證不同(提高效率)。TreeMap:集合是指一個對象可以容納了多個對象(不是引用),這個集合對象主要用來管理維護一系列相似的對象。 



相關焦點

  • PHP如何刪除數組中的重複元素 - php中文網
    在PHP中可以使用內置函數array_unique()來直接刪除重複元素,也可以使用array_flip()函數來間接刪除重複元素。1.array_unique()函數array_unique()函數可以移除數組中的重複的值,並返回結果數組;當幾個數組元素的值相等時,只保留第一個元素,其他的元素被刪除。代碼示例:<?
  • Java刪除ArrayList中的重複元素的2種方法
    它允許靈活添加多個null元素,重複的元素,並保持元素的插入順序。在編碼時我們經常會遇到那種必須從已建成的ArrayList中刪除重複元素的要求。這篇文章將給出兩種從ArrayList中刪除重複元素的方法。方法1:使用HashSet刪除ArrayList中重複的元素在該方法中,我們使用HashSet來刪除重複的元素。
  • 零基礎java入門教程java數組常見操作最大值最小值和重載複習例題
    0基礎java入門 java數組的常見操作:獲取最值下面通過獲取最大值來舉一反三獲取最小值同樣的和咱們之前講的一樣,在開始先程序前,先不要直接就開始寫代碼,一定要先將要求和思路步驟先寫清楚,然後在通過這些要求步驟和思路來寫出代碼程序
  • JAVA基礎知識點03_數組
    聲明數組:int[] nums;實例化數組:new int[10];給數組中的元素賦值:nums
  • 如何在Java中創建數組列表
    ArrayList的關鍵點An ArrayList是一個可調整大小的數組,也稱為動態數組。它根據新元素增加其大小,並在刪除元素時減小大小。數組用於在ArrayList 內部存儲元素 。它允許您通過索引檢索元素。
  • Java 集合框架面試問題集錦
    Java常見面試問題。常見的數據結構數組是最常用的數據結構。數組的特點是長度固定,可以用下標索引,並且所有的元素的類型都是一致的。數組常用的場景有把:從資料庫裡讀取僱員的信息存儲為EmployeeDetail[],把一個字符串轉換並存儲到一個字節數組中便於操作和處理,等等。儘量把數組封裝在一個類裡,防止數據被錯誤的操作弄亂。另外,這一點也適合其他的數據結構。
  • 程式設計師面試最常見問題TOP 48
    當然,如果你對於基本數據結構和算法沒有足夠的知識儲備,那麼直接接觸以下問題將對你沒有幫助。算法和編程面試題 TOP 48廢話少說,這裡有一份「編程面試最常見的問題列表」:1. 數組編程面試問題數組是最基本的數據結構,它將元素儲存在連續的內存空間中。
  • 麥子java黑馬程式設計師前輩之路入門基礎java數組折半查找案例例題
    在了解java數組排序功能塊代碼的操作後下面咱們再來分享下關於給定一個元素,然後在數組中查找元素是否存在,如果存在則輸出對應數組元素下的角標,如果不存在則輸出-1;java在數組中查找某一個元素案例上圖所示,在給定的數組裡查找對應元素的角標位置數,上圖是查找存在的元素位置,如過查找的元素不存在數組裡頭編譯會如何?
  • js 根據值刪除數組元素
    js刪除數組元素1,其實很簡單,就是網上文章查的寫得有點太專業了,就是這個splice方法的值解釋的有點難理解,要是像根據下標刪除就直接把arr.splice(1,1)拿出來就可以了。2,下面我把代碼粘貼出來大家可以直接複製測試一下let array = ['a', 'b', 'c', 'd', 'e', 'f','d'];//根據數組元素的值刪除指定元素,第一個參數是要刪除的數組,第2個是要刪除的值function delitem
  • Java數組轉List的三種方式及對比
    一.最常見方式(未必最佳) 通過 方式,將數組轉換List後,不能對List增刪,只能查改,否則拋異常。類具有set(),get(),contains()等方法,但是不具有添加或刪除方法,所以調用方法會報錯。 使用場景:方式僅能用在將數組轉換為List後,不需要增刪其中的值,僅作為數據源讀取使用。 二.數組轉為List後,支持增刪改查的方式 通過ArrayList的構造器,將的返回值由轉為。
  • Java語法 | 多維數組
    但是,在本篇,查老師將帶你學習一種更為高級的方式:多維數組。概述上一篇,我們學的用來存儲多個數據的數組,它們被稱為一維數組。多維數組,類似於前面學過的嵌套 if、嵌套循環。查老師覺得,你也可以把多維數組稱之為 "嵌套數組"。它的常見表現形式有:二維數組、三維數組。
  • 探討如何實現PHP刪除數組元素
    對於學習PHP語言的人來說,在數組上添加元素是一件非常輕鬆的事情。那麼,當我們需要刪除數組元素的時候,應該如何做呢?其實這一步驟同樣很簡單。下面我們就來為大家介紹有關PHP刪除數組元素的具體實現方式。
  • c++ list slice專題及常見問題 - CSDN
    切片(slice)是對數組的一個連續片段的引用,這個連續片段可以是整個數組,也可以是由起止索引標識的子集元素。需要注意的是切片終止索引標識的元素不包含在切片內。切片是一個引用類型,類似於C/C++中的數組類型或Python中的list列表類型。切片默認指向一段連續的內存區域,因此可以是數組也可以是切片本身。
  • 數據結構java面試題及答案
    數組是最常用的基礎數據結構,它將元素保存在連續的內存中。它也是面試最喜歡的問題之一,在代碼面試中你會經常聽到很多關於數組的問題,例如,數組的反轉、數組的排序或者查找數組中的一個元素。數組結構的一個關鍵優點是在知道索引的情況能夠以O(1)的複雜度找到一個元素。但是增加或者刪除一個元素是很慢的,因為一旦創建了一個數組,你就不能改變它的大小了。
  • PHP數組函數有哪些?
    /1049597611、創建數組的函數range()函數定義:range() 函數創建一個包含指定範圍的元素的數組。array_combine函數定義:array_combine() 函數通過合併兩個數組來創建一個新數組,其中的一個數組元素為鍵名,另一個數組的元素為鍵值。
  • github覆蓋本地專題及常見問題 - CSDN
    https://www.cnblogs.com/qufanblog/p/7606105.html[4] git 拉取遠程分支到本地 https://blog.csdn.net/carfge/article/details/79691360[5] git刪除本地分支 https://blog.csdn.net/github_27263697/article/details/79373997
  • EXCEL中數組的應用專題之三:如何對數組公式進行編輯和刪除
    在上一講數組的應用專題之二中,我講過數組公式的特徵之一就是不能單獨編輯、清除或移動數組公式所涉及的單元格區域中的某一個單元格。這個特徵也是數組的重要應用之一。這裡我們再來回顧一下什麼是數組,什麼是數組公式.
  • 給Java程式設計師的20個鍊表面試題
    鍊表則是對數組數據結構進行的補充,是另一種常見的數據結構。和數組相似的是,鍊表也是線性數據結構,並以線性方式儲存元素。但是,和數組不同的是,鍊表不將元素儲存在連續的位置;相反,其元素分散在內存中的各個地方,並以節點進行相互連接。鍊表不過是一個節點的列表,其中每一個節點都包含存儲的值和下一個節點的位置。
  • 尚學堂知識整理:java數組
    數組是什麼?數組是一個固定長度的數據結構,用於保存多個相同數據類型的值。在數據類型之後或在變量聲明中的變量名稱之後放置[],使變量成為數組。如果要聲明數組,可在上面的聲明中的數據類型之後放置[],如下所示 –創建數組數組創建的一般語法如下:以下代碼創建Arraylength長度類型為ArrayDataType的數組對象
  • 跟我學java編程—Java的二維數組結構可以這樣理解
    前面介紹了一維數組。在實際問題中有些數據信息是二維的或者多維的。多維數組元素有多個下標,以標識它在數組中的位置。本節只介紹二維數組,多維數組可由二維數組類推而得到。外層大括號對裡面的元素是行數組的元素,因為型數組元素是一維數組,因此每個型數組元素也用大括號對包括起來,裡面的元素是列數組的元素。另外,用指定初值的方式對數組進行初始化時,列數組元素的個數可以不同。