「java去重集合」java集合怎么去重
本篇文章给大家谈谈java去重集合,以及java集合怎么去重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、集合元素去重用java类库中的什么类
- 2、java中怎么样子找出数组中重复的数,并去除
- 3、java中去除集合重复元素问题
- 4、用Java中的ArrayList实现:去除集合中字符串的重复值(字符串的内容相同)
- 5、Java中如何去除List中的重复的值
集合元素去重用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去重集合的信息别忘了在本站进行查找喔。
发布于:2022-12-10,除非注明,否则均为
原创文章,转载请注明出处。