導航:首頁 > 編程語言 > java數組去重復元素

java數組去重復元素

發布時間:2021-03-05 15:11:36

java去掉數組里的重復的數據

計數方法,你在遍歷數組外邊int 一個數=0,如果某個數和數組【i】相等,就++
刪除方法我用的是笨方法,因為數組不能直接增刪操作,要先算出新數組的長度,在遍歷出去,我是取巧了先排序了,當然你也可以用其他排序方法排序
public static void main(String[] args) {
int [] arr={1,2,2,3,4,5};
int len=arr.length;
Arrays.sort(arr);
int leng=0;
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
leng++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
leng++;
}
System.out.println(leng);
int newlength=0;
int []newArr=new int[leng];
for( int i=0;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
newArr[newlength]=arr[i];
newlength++;
}
}
if(arr[arr.length-2]!=arr[arr.length-1]){
newArr[newlength]=arr[arr.length-1];
}
for(int i=0;i<newArr.length;i++){
System.out.println(newArr[i]);
}

}

② JAVA里如何刪除數組中重復的元素

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

③ java中怎麼找出數組中重復的數並去除

java中找出數組中重復的數並去除的代碼如下:

publicstaticvoidtestA(){
String[]str={"Java","C++","Php","C#","Python","C++","Java"};
for(StringelementA:str){
System.out.print(elementA+"");
}
List<String>list=newArrayList<String>();
for(inti=0;i<str.length;i++){
if(!list.contains(str[i])){
list.add(str[i]);
}
}
System.out.println();
String[]newStr=list.toArray(newString[1]);//返回一個包含所有對象的指定類型的數組
for(StringelementB:newStr){
System.out.print(elementB+"");
}
System.out.println();
}

④ Java如何將數組中具有相同的元素都刪去

ArrayLista=newArrayList(數組);

for(inti=0;i<a.size();i++){

Objectobj=數組[i];

if(a.contains(obj)){

a.remove(i);

}

}

我答案錯了,不好意思,當初咋想的忘記了,抱歉。下面的其他匿名網友回答是正確的。另外附上我的修改。

一:利用set的唯一性解決

String[]strArr={"B","A","C","D","C","A"};
Set<String>strList=newHashSet(Arrays.asList(strArr));
System.out.println(strList.toString());

二:創建新的存儲單位,判斷是否重復後逐個增加

publicstaticvoidmain(String[]args){
String[]strArr={"B","A","C","D","C","A"};
List<String>strList=newArrayList<String>();
for(Stringstr:strArr){
if(strList.contains(str)){
continue;
}
strList.add(str);
}
System.out.println(strList.toString());
}

三:利用steam的distinct方法去重(jdk1.8的新特性)

String[]strArr={"B","A","C","D","C","A"};
List<String>strList=Arrays.asList(strArr);
strList=strList.stream().distinct().collect(Collectors.toList());
System.out.println(strList.toString());

⑤ java 數組如何去掉重復元素

只用for循環和if語句去掉數組重復元素的Java程序如下

importjava.util.Arrays;
publicclassF{
publicstaticint[]distinctArray(int[]a){
boolean[]b=newboolean[a.length];
intcount=a.length;
for(inti=0;i<a.length-1;i++){
for(intj=i+1;j<a.length;j++){
if(a[i]==a[j]&&b[i]==false){
b[j]=true;
count--;
}
}
}
int[]result=newint[count];
intj=0;
for(inti=0;i<a.length;i++){
if(b[i]==false){
result[j]=a[i];
j++;
}
}
returnresult;
}
publicstaticvoidmain(String[]args){
int[]a={1,1,1,2,3,4,5,6,6,6,6,6};
System.out.println(Arrays.toString(distinctArray(a)));
}
}

運行結果

[1, 2, 3, 4, 5, 6]

⑥ java中怎麼樣子找出數組中重復的數,並去除

  1. 使用Set集合處理即可,因為Set集合有特性,自動去除重復的元素;

  2. 只要循環數組,添加到set中就可以實現了。

⑦ Java把一個數組中重復的元素去除,但保留第一個,明天交作業,急急急!!!!!!望大神幫助debug

packagecom.equals.test;

importjava.util.HashSet;
importjava.util.Scanner;
importjava.util.Set;

publicclassCircle{


publicstaticvoidmain(Stringargs[]){
System.out.println("Entertennumbers:");
int[]a=newint[10];
Scannerreader=newScanner(System.in);
for(inti=0;i<10;i++){
a[i]=reader.nextInt();
}
reader.close();
//保留第一個
System.out.println("Thefirstis:"+a[0]);
System.out.println("Thedistinctnumbersare:");
Set<Integer>num=newHashSet<Integer>();
for(Integern:a){
num.add(n);
}
for(Integern:num){
System.out.println(n);
}
}

}

⑧ Java數組中重復數據的刪除

java數組中去掉重復數據可以使用set集合,set本身內部是不保存重復的數據的,如下代碼:

importjava.util.Arrays;
importjava.util.Set;
importjava.util.TreeSet;

publicclassceshi{
publicstaticvoidmain(String[]args){

int[]testArr={5,5,1,2,3,6,-7,8,6,45,5};//新建一個int類型數組
System.out.println(Arrays.toString(testArr));
Set<Integer>set=newTreeSet<Integer>();//新建一個set集合
for(inti:testArr){
set.add(i);
}
Integer[]arr2=set.toArray(newInteger[0]);
//數組的包裝類型不能轉只能自己轉;吧Integer轉為為int數組;
int[]result=newint[arr2.length];
for(inti=0;i<result.length;i++){
result[i]=arr2[i];
}
System.out.println(Arrays.toString(arr2));
}
}

運行結果如下:

⑨ java中怎麼將字元串數組中的重復的元素去掉,但是還是保留一個。

import java.util.*;

class BaiDu
{
public static void main(String[] args)
{
TreeSet<String> tr = new TreeSet<String>();
String[] s ={"11","22","22","33","33","33"};
System.out.print("====處理前=======");
for(int i=0;i<s.length;i++){
System.out.print(s[i]+" ");
tr.add(s[i]);

}
String[] s2= new String[tr.size()];
System.out.println("=====處理後======");
for(int i=0;i<s2.length;i++){
s2[i]=tr.pollFirst();//從TreeSet中取出元素重新賦給內數組容
System.out.print(s2[i]+" ");
}
}
}

⑩ Java數組去重復問題

代碼如下:
public static void main(String[] args) {
int[] Nums = { 100, 2, 2, 3, 4, 5, 5, 5, 7, 7, 8, 9, 9, 23, 45, 75, 75,
78, 80, 99, 99, 199 };
Integer [] aa = getDistinct(Nums);

for(int i : aa){
System.out.println(i);
}
}

static Integer[] getDistinct(int num[]) {
List<Integer> list = new java.util.ArrayList<Integer>();
for (int i = 0; i < num.length; i++) {
if (!list.contains(num[i])) {//如果list數組不包括num[i]中的值的話,就返回true。
list.add(num[i]); //在list數組中加入num[i]的值。已經過濾過。
}
}

return list.toArray(new Integer[0]);
//toArray(數組)方法返回數組。並要指定Integer類型。new
integer[o]的空間大小不用考慮。因為如果list中的長度大於0(你integer的長度),toArray方法會分配一個具有指定數組的運行
時類型和此列表大小的新數組。
}

閱讀全文

與java數組去重復元素相關的資料

熱點內容
如何在天天基金app看持基天數 瀏覽:764
什麼直播app優化 瀏覽:12
文件名陰影 瀏覽:619
小米note圖庫設置在哪個文件夾 瀏覽:604
家教高級課程兩個老師都叫什麼 瀏覽:776
湖畔女演員 瀏覽:298
姜銀慧家庭對抗 瀏覽:130
蘋果4s屏幕上的圈圈怎麼設置 瀏覽:549
ps獲取源文件製作步驟 瀏覽:359
蘋果手機拉黑後能提示 瀏覽:29
滿清十大酷一共有幾部 瀏覽:585
騰訊文件如何關聯微信 瀏覽:281
java歸並排序數組 瀏覽:59
14路末班車電影國語在線免費觀看 瀏覽:139
神州影視 1080p 下載 瀏覽:977
ufb數據線是什麼 瀏覽:344
把題看漏了網路怎麼說 瀏覽:303
小說書包網txt下載 瀏覽:385
韓國經典愛情推理片 瀏覽:551
java去哪些公司 瀏覽:698

友情鏈接