Java中如何去除List中的重复的值

Python022

Java中如何去除List中的重复的值,第1张

属性是????

先给你一个看看是不是你需要的好了,

                // 利用 Set 的特性,将所有项目放入 Set 

//中即可移除重复的项目

Set<String> stringSet = new HashSet<String>()

for (String element : duplicateArray) {

stringSet.add(element)

}

// Set.size() 为不重复项目的个数

String nonDuplicateArray[] = new String[stringSet.size()]

// 将 Set 中的项目取出放到 nonDuplicateArray 中

Object[] tempArray = stringSet.toArray()

for (int i = 0 i < tempArray.length i++) {

nonDuplicateArray[i] = (String) tempArray[i]

}

代码如下(java):

import java.util.Arrays

public class Test2{

public static void main(String[] args) {

int[] a = {1,1,4,4,3,3,5,3,8,0,5,1}

System.out.println("输入的数组为:"+Arrays.toString(a))

a = Arrays.stream(a).distinct().toArray()

System.out.println("删除相同后的数组为:"+Arrays.toString(a))

}

}

代码运行结果:

扩展资料

删除数组中重复的元素,在java中特别简单,特别是在java8引入stream api之后对数组的操作可以转换成stream进行操作,stream提供去重的方法,能对数组进行去重,然后再把stream转换回数组,就可以得到删除重复数字的数组了。

参考资料:百度百科-Java

Java8开始,对数值,集合等提供了Stream流操作,可以方便的对集合进行操作.

比如 筛选,过滤,去重, 映射, 排序,规约,收集 等操作

简单的参考代码如下

import java.util.Arrays

import java.util.List

import java.util.stream.Collectors

// 使用Java8 的Stream特性 和 Java8的Lambda 语句

public class Demo {

public static void main(String[] args) {

// 需求: 集合去重,排序,得到一个新集合里面的元素是之前元素的平方

List<Integer> list=Arrays.asList(5,2,2,1,3,4)

List<Integer> listResult = list

.stream() // 得到流

.distinct() // 去重 5,2,1,3,4

.sorted() // 自然排序 , 也可以自定义排序规则1,2,3,4,5

.map(x->x*x) // 每个元素求平方1,4,9,16,25

.collect(Collectors.toList()) //收集并返回

System.out.println(listResult)//1,4,9,16,25

}

}