首页 > 编程知识 正文

java利用set进行数组去重,java字符串去重的方法

时间:2023-05-05 17:19:20 阅读:27398 作者:3513

/*

去除排列的重量

遍历1:数组,将元素顺序添加到结果集中。 如果结果集已经存在,则不添加。 o(n*n ) ) )。

如果知道要素范围(如2:字母和数字在固定范围内),可以采用辅助数组。 辅助数组的下标是删除数组的元素,如果辅助数组元素,则删除数组元素的个数。 o(n )。

3:首先对原始数组进行排序,并将其与相邻的进行比较,如果不同则存储在新数组中

利用4:散列集的无序不可迭代特性的元素滤波

5:TreeSet不仅可以实现元素不重叠,还可以实现排序等功能的集合

6:只需创建集合,遍历数组,然后一次放置一个集合。 在部署之前,只需要使用contains ()方法来确定集合中是否已经存在该元素

*/

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashSet;

import java.util.Set;

import java.util.TreeSet;

class Deduplicate

{

//o(n*n ) ) ) )

公共静态int [ ] de duplicate1(int [ ] array ) )。

{

(if (array==null|| array.length==0) ) ) ) ) ) ) ) )

{

返回空值;

}

arraylistintegeral=newarraylistinteger (;

out:for(intI=0; iarray.length; I )

{

for(intj=0; jal.size (; j )

{

if(array[I]==al.get(j ) )

{

连续输出;

}

}

al.add (阵列[ I ];

}

//integer [ ] array result=(integer [ ] ) al.toarray(newinteger[al.size () ];

int [ ] array result=al.stream (.maptoint (I-I ).toArray );

/*

如果不想使用循环,也想得到int[],就只能在jdk8上使用IntStream

这是Java8的新功能,你在做什么?

1 .首先从Integer数组获取流

2 .打开流程的所有要素;

调用toArray将拆包后的流转换为数组

*/

返回阵列结果;

}

假设//元素范围为0-100,则可以去除重量,也可以重新排列

公共静态int [ ] de duplicate2(int [ ] array ) )。

{

(if (array==null|| array.length==0) ) ) ) ) ) ) ) )

{

返回空值;

}

int[] temp=new int[101];

for(intI=0; iarray.length; I )

{

temp[array[i]];

}

arraylistintegeral=newarraylistinteger (;

for(intI=0; itemp.length; I )

{

if(temp[I]!=0)

{

al.add(I;

}

}

return al.stream ().maptoint(I-I ).toArray );

}

//先排序,接下来相邻的要素变重

公共静态int [ ] de duplicate3(int [ ] array ) )。

{

(if (array==null|| array.length==0) ) ) ) ) ) ) ) )

{

返回空值;

}

Arrays.sort(Array );

arraylistintegeral=newarraylistinteger (;

al.add(Array[0];

for(intI=1; iarray.length; I )

{

IF (阵列[ I ]!=array[i-1] )

{

al.add (阵列[ I ];

}

}

return al.stream ().maptoint(I-I ).toArray );

}

//HashSet加重

公共静态int [ ] de duplicate4(int [ ] array ) )。

{

(if (array==null|| array.length==0) ) ) ) ) ) ) ) )

{

返回空值;

}

setintegerset=newhashsetinteger (;

for(intI=0; iarray.length; I )

{

set.add(Array[I];

}

return set.stream ().maptoint(I-I ).toArray );

}

//HashSet进行排序和排序

公共静态int [ ] de duplicate5(int [ ] array ) )。

{

(if (array==null|| array.length==0) ) ) ) ) ) ) ) )

{

返回空值;

}

setintegerset=newtreesetinteger (;

for(intI=0; iarray.length; I )

{

set.add(Array[I];

}

return set.stream ().maptoint(I-I ).toArray );

}

公共静态int [ ] de duplicate6(int [ ] array ) )。

{

(if (array==null|| array.length==0) ) ) ) ) ) ) ) )

{

返回空值;

}

arraylistintegeral=newarraylistinteger (;

for(intI=0; iarray.length; I )

{

if (! al.contains(Array[I] ) )

{

al.add (阵列[ I ];

}

}

return al.stream ().maptoint(I-I ).toArray );

}

publicstaticvoidmain (字符串[ ] args ) )。

{

int [ ] array={ 1,4,3,2,5,3,6,100,2 };

system.out.println (arrays.tostring ) deduplicate6(Array );

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。