导航:首页 > 编程语言 > 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数组去重复元素相关的资料

热点内容
带着斩魄刀穿越九叔的世界 浏览:554
英伦影院 浏览:358
欧美床戏亲吻电影 浏览:838
妈妈的职业谁演男服务员? 浏览:576
蓝色标是哪个编程软件 浏览:330
谁的电影网 浏览:595
女同电影 浏览:513
电影詹妮前夫杰克叫啥名字 浏览:419
电脑怎么有线连接网络 浏览:290
javascript字符串转布尔 浏览:336
微信电脑给自己发文件 浏览:266
3对情侣去无人岛旅游韩国电影 浏览:922
快递小哥丁冬和浩哥 浏览:625
黛妃全部作品集百度网盘 浏览:59
桃太郎电影共几部 浏览:580
求一部电影名字 女主叫露娜 浏览:449
乐赢app怎么找到推荐人 浏览:730
win8搜索文件 浏览:530
魔兽世界法师升级快么 浏览:1000
大话西游2粤语云在线 浏览:654

友情链接