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:集合是指一個對象可以容納了多個對象(不是引用),這個集合對象主要用來管理維護一系列相似的對象。