`
speed_guo
  • 浏览: 313856 次
  • 性别: Icon_minigender_1
  • 来自: 湖北
社区版块
存档分类
最新评论

两个List,去掉重复的。remove()

 
阅读更多
public static void main(String[] args) {
		//第一种:List每remove掉一个元素以后,
		//后面的元素都会向前移动,此时如果执行i=i+1,
		//则刚刚移过来的元素没有被读取。
		String str1 = new String("abcde1");
		String str2 = new String("abcde2");
		String str3 = new String("abcde3");
		String str4 = new String("abcde4");
		String str5 = new String("abcde5");
		List list = new ArrayList();
		list.add(str1);
		list.add(str2);
		list.add(str3);
		list.add(str4);
		list.add(str5);
		System.out.println("list.size()=" + list.size());
		//每移除一个元素以后再把i移回来
		for (int i = 0; i < list.size(); i++) {
			if(((String) list.get(i)).contains("abcde1")) {
				list.remove(i);
				i--;
			}
		}
		System.out.println("after remove:list.size()=" + list.size());


	//第二种:定义一个空的Set,把两个list中的元素依次往这个set中存放,
		//Set中的元素是不重复的
	ArrayList<String> l1 = new ArrayList<String>();
	ArrayList<String> l2 = new ArrayList<String>();
	l1.add("1");
	l1.add("2");
	l1.add("3");
	l1.add("4");
	l1.add("5");
	l2.add("3");
	l2.add("4");
	l2.add("5");
	l2.add("6");
	l2.add("7");

	/*l1.add(1);
	l1.add(2);
	l1.add(3);
	l1.add(4);
	l2.add(3);
	l2.add(4);
	l2.add(5);
	l2.add(6);*/

	Set set = new HashSet();

	for (String i : l1){
		set.add(i); 
	}


	for(String i : l2){
		set.add(i); 
	}

	ArrayList<String> l3 = new ArrayList<String>(set);
	Collections.sort(l3);   //这里排序
	System.out.println(l3);

	
	//第三种:
	
	 List <String> temp=new ArrayList<String>(l1);//用来保存两者共同有的数据
	  temp.retainAll(l2);
	  l1.removeAll(temp);//l1中去掉两者共同有的数据
	  l2.removeAll(temp);//l2中去掉两者共同有的数据
	  
	  List <String> l5=new ArrayList<String>();
	  l5.addAll(l1);
	  l5.addAll(l2);
	  System.out.println(l5);
	
	 //第四种:用SET 
	  Set s = new HashSet(l1);//将1放到Set中
	  for(String i : l2){
		  //l2添加到set中不成功的时 ,说明s中已经存在该对象,直接remove掉该对象即可
		  if(!s.add(i)){
			  s.remove(i);
		  }
	  }
	  System.out.println(s);
	}

 

分享到:
评论

相关推荐

    两个list比较 取不同的对象

    ### 两个List比较取不同的对象 在Java编程中,经常需要对两个`List`进行比较,找出它们之间的差异。这通常涉及到数据结构的理解、算法设计以及编程实现等多个方面。本文将详细探讨如何通过一个示例代码来理解如何...

    两个集合比较(新增、编辑、删除)

    当我们需要找出两个List之间的差异,即在第二个List中新增的元素时,可以使用`ArrayList`或`LinkedList`的`containsAll()`方法。如果第二个List包含第一个List不包含的所有元素,则这些元素是新增的。例如: ```...

    Android List删除重复数据

    Android List删除重复数据是 Android 开发中一个常见的问题,删除重复数据可以提高列表的效率和可读性。在本文中,我们将介绍四种不同的方法来删除 Android List 中的重复数据。 方法一:通过循环进行删除 该方法...

    【Robotframework】列表List的常用操作.pdf

    例如,`Lists Should Be Equal ${list} ${list1}` 判断两个列表是否相同。 8. **Remove From List**: 根据索引移除列表中的元素。例如,`Remove From List ${list} 0` 移除列表的第一个元素。 9. **Remove Values ...

    C#高性能枚举去除泛型中的重复数据

    枚举(Enum)和泛型(Generic)是C#语言中两个非常重要的特性,它们各自有其独特的作用,但在某些场景下可以结合使用以提高代码的复用性和性能。本文将深入探讨如何利用C#的枚举和泛型技术来实现高性能的数据去重。 ...

    Java中ArrayList去除重复元素(包括字符串和自定义对象)

    在去除ArrayList中重复自定义对象元素时,我们需要重写equals方法,因为contains方法和remove方法都依赖于equals方法。下面是一个示例代码: ```java public class Person { private String name; private int ...

    .net 过滤重复数据

    - **列表合并**:当需要合并两个或多个列表时,去除重复项,保持结果列表的唯一性。 #### 六、总结 本文介绍了一种基于`.NET`平台的简单有效的过滤重复数据的方法。通过对字符串的分割、类型转换以及递归技术的...

    Java中List集合对象去重及按属性去重的8种方法

    在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set...

    完整版组合框、列表框去重复数据妙法.rar

    例如,VB6中的ComboBox控件有一个RemoveDuplicates属性,可以设置为True来自动去除重复。 6. 多步处理:在大型数据集的情况下,可以分批加载数据并即时去重,防止一次性处理大量数据导致的性能问题。 7. 实时监控...

    Python list列表中删除多个重复元素操作示例

    ### Python List列表中删除多个重复元素操作详解 在Python编程中,经常需要处理各种数据结构,其中`list`是最常用的数据类型之一。由于实际应用场景的需求多样,如何高效地操作列表中的元素成为了一项重要的技能。...

    Java数组去重 集合List去重的常用方法总结

    在Java中,去除List集合中的重复元素同样非常重要。下面是几种常见的方法。 ##### 方法一:使用For循环删除重复元素 这种方法通过两层循环来遍历List中的所有元素,并删除重复项。 **示例代码**: ```java ...

    C#源码 字符串数组的动态添加,查找,删除

    比较两个列表是否相等,可以使用`List&lt;T&gt;.SequenceEqual()`方法,它会检查两个列表的顺序和元素是否都相同: ```csharp List&lt;string&gt; compareList = new List(stringList); bool areEqual = stringList....

    day03_List、Set 每日作业卷答案1

    如果两个元素的`equals()`返回`true`,则认为它们是相同的元素。 在处理List时,有一些特定的方法用于操作元素: - **删除指定索引元素**:如果需要在List中删除某个索引位置的元素,通常需要创建一个新的List,...

    删除链表中重复元素(c语言版)

    在C语言中,链表节点通常由两个部分组成:数据域和指针域。数据域存储实际的元素值,而指针域指向下一个节点。对于本问题,我们假设链表中存储的是整型数值。因此,节点的定义如下: ```c typedef struct ListNode ...

    day03_List、Set 每日作业卷1

    如果两个对象的equals()返回true,那么它们的hashCode()也应相同,这样才能在HashSet中正确地处理重复元素。 【List集合元素替换】 使用List接口提供的set(int index, E element)方法可以替换指定索引处的元素。 ...

    Java集合Collection、List、Set、Map使用详解

    `Set`不允许任何重复元素,通常用于去除重复数据。 ##### 常用方法 - `add(E e)`:向集合中添加一个元素。 - `remove(Object o)`:从集合中移除指定的元素。 - `contains(Object o)`:判断集合是否包含指定元素。 ...

    python list语法学习(带例子)

    创建:list = [5,7,9]取值和改值:list[1] = list[1] * 5列表尾插入:list.append(4)去掉第0个值并返回第0个值的数值:list.pop(0)去掉第0个值但不返回数值:del(list[0])去掉具体某个值:list.remove(35)函数...

    list集合案例增、删、改、查,ArrayList与LinkedList的区别,LinkedList堆栈/队列的开发

    四、`List`集合去除重复 Java 8引入了`Set`接口的流操作,可以通过以下方式去重: ```java List&lt;String&gt; list = ...; List&lt;String&gt; uniqueList = list.stream() .distinct() .collect(Collectors.toList()); ```...

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    - **Map**:是一种键值对集合,每个键都是唯一的,用于关联两个对象,常用于快速查找场景。 #### Collection `Collection`接口是Java集合框架的核心接口之一,它定义了集合的基本行为,包括添加、删除、查询等操作...

    java中循环遍历删除List和Set集合中元素的方法(推荐)

    这两个类在内部创建副本进行修改,从而允许在遍历时安全地修改集合,但请注意,这种方法不适合频繁的修改操作,因为它会创建新的集合实例,可能导致内存开销增加。 4. **使用流(Stream)操作(Java 8及以上版本)** ...

Global site tag (gtag.js) - Google Analytics