「java去重集合」java集合怎么去重

博主:adminadmin 2022-12-10 22:24:08 78

本篇文章给大家谈谈java去重集合,以及java集合怎么去重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

集合元素去重用java类库中的什么类

去掉集合的重复元素,我们一般是这么做的:建立一个新的集合,把没有出现过的元素添加进去。你这种方法我以前也用过,同样没成功。不过Map是可以这么做的。

package list;

import java.util.*;

public class Remove_form_list {

public static void method4() {

List list = new ArrayList();

list.add("123");

list.add("456");

list.add("258");

list.add("789");

list.add("147");

list.add("258");

list.add("123");

list.add("123");

List temp = new ArrayList();

Iterator it = list.listIterator();

while(it.hasNext()){

Object o = it.next();

if(!temp.contains(o)){ //如果temp还没有这个元素,就添加

temp.add(o);

}

}

list = temp;

System.out.println(list.toString());

}

public static void main(String[] args) {

method4();

}

}

结果:

[123, 456, 258, 789, 147]

java中怎么样子找出数组中重复的数,并去除

;

 public static void main(String[] args) {

 //可以换种思路,把数组放到set里面(set的值不会重复)就可以去重了

Integer[] arr = {85,4,2,6,11,4,5,8,9};

SetInteger set = new HashSetInteger();

 for(Integer i : arr)

 set.add(i);

 for(Object j: set.toArray())

 System.out.print(j + " ");

 }

java中去除集合重复元素问题

你把o.equals(list)那句换成list.contains(o)试试。现在你的代码里o是个Object(其实是String),list是个List,根本不可能equal的

哦下面那个li.remove(o)也换成list.remove(o)

________________________________

哦不对。。。你下面的iterator循环里面其实把每一个都删掉了。。。

------------------------------------

我加了一些我的改动代码,不过如另一个人所说,一般我们都是在添加的时候去重的,你这种方式我也第一次遇到,不过就你给出来的这些条件,我觉得这样改就可以了。

用Java中的ArrayList实现:去除集合中字符串的重复值(字符串的内容相同)

public class Test {

public static void main(String[] args) {

ListString list = new ArrayListString();

list.add("测试1");

list.add("测试2");

list.add("测试3");

list.add("测试4");

list.add("测试4");

list.add("测试2");

list.add("测试5");

System.out.println("没有去重前的数据为"+list.toString());

for(int i = 0;ilist.size()-1;i++){

for(int j = list.size()-1;ji;j--) {

if(list.get(j).equals(list.get(i))){

list.remove(j);

}

}

}

System.out.println("去重后的数据为"+list.toString());

}

}

希望能帮到你!

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

你要去除的值是基本数据类型还是对象呢?

如果不想存重复数据何不用Set呢。。。

其实吧。。在知道上提问不如在网页上查。。这个是我查到的第一个。。网页里的内容,他一共使用了3种方式

最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。

但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱了。所以我又想着能不能用set的特性进行去重又不打乱顺序呢?

试了一下,也是可以的,几种方法在不同情况下都有各自的优势。现在将代码写出来,比较一下。

//set集合去重,不打乱顺序

public static void main(String[] args){

ListString list = new ArrayListString();

list.add("aaa");

list.add("bbb");

list.add("aaa");

list.add("aba");

list.add("aaa");

Set set = new HashSet();

List newList = new ArrayList();

for (String cd:list) {

if(set.add(cd)){

newList.add(cd);

}

}

System.out.println( "去重后的集合: " + newList);

}123456789101112131415161718

//遍历后判断赋给另一个list集合

public static void main(String[] args){

ListString list = new ArrayListString();

list.add("aaa");

list.add("bbb");

list.add("aaa");

list.add("aba");

list.add("aaa");

ListString newList = new ArrayListString();

for (String cd:list) {

if(!newList.contains(cd)){

newList.add(cd);

}

}

System.out.println( "去重后的集合: " + newList);

}1234567891011121314151617

//set去重

public static void main(String[] args){

ListString list = new ArrayListString();

list.add("aaa");

list.add("bbb");

list.add("aaa");

list.add("aba");

list.add("aaa");

Set set = new HashSet();

List newList = new ArrayList();

set.addAll(list);

newList.addAll(set);

System.out.println( "去重后的集合: " + newList);

}12345678910111213141516

//set去重(缩减为一行)

public static void main(String[] args){

ListString list = new ArrayListString();

list.add("aaa");

list.add("bbb");

list.add("aaa");

list.add("aba");

list.add("aaa");

List newList = new ArrayList(new HashSet(list));

System.out.println( "去重后的集合: " + newList);

}12345678910111213

hashset不进行排序,还有一种方法是用treeset,去重并且按照自然顺序排列,将hashset改为treeset就可以了。(原本的顺序是改变的,只是按照字母表顺序排列而已)

//去重并且按照自然顺序排列

List newList = new ArrayList(new TreeSet(list));

java去重集合的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java集合怎么去重、java去重集合的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-10,除非注明,否则均为首码项目网原创文章,转载请注明出处。