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比较取不同的对象 在Java编程中,经常需要对两个`List`进行比较,找出它们之间的差异。这通常涉及到数据结构的理解、算法设计以及编程实现等多个方面。本文将详细探讨如何通过一个示例代码来理解如何...
当我们需要找出两个List之间的差异,即在第二个List中新增的元素时,可以使用`ArrayList`或`LinkedList`的`containsAll()`方法。如果第二个List包含第一个List不包含的所有元素,则这些元素是新增的。例如: ```...
Android List删除重复数据是 Android 开发中一个常见的问题,删除重复数据可以提高列表的效率和可读性。在本文中,我们将介绍四种不同的方法来删除 Android List 中的重复数据。 方法一:通过循环进行删除 该方法...
例如,`Lists Should Be Equal ${list} ${list1}` 判断两个列表是否相同。 8. **Remove From List**: 根据索引移除列表中的元素。例如,`Remove From List ${list} 0` 移除列表的第一个元素。 9. **Remove Values ...
枚举(Enum)和泛型(Generic)是C#语言中两个非常重要的特性,它们各自有其独特的作用,但在某些场景下可以结合使用以提高代码的复用性和性能。本文将深入探讨如何利用C#的枚举和泛型技术来实现高性能的数据去重。 ...
在去除ArrayList中重复自定义对象元素时,我们需要重写equals方法,因为contains方法和remove方法都依赖于equals方法。下面是一个示例代码: ```java public class Person { private String name; private int ...
- **列表合并**:当需要合并两个或多个列表时,去除重复项,保持结果列表的唯一性。 #### 六、总结 本文介绍了一种基于`.NET`平台的简单有效的过滤重复数据的方法。通过对字符串的分割、类型转换以及递归技术的...
在Java编程中,当我们处理包含重复元素的List时,有时需要去除其中的重复项。以下文章将详细介绍8种针对List集合对象去重的方法,包括基于对象整体以及按特定属性进行去重。 ### 一、对象整体去重 #### 1. 使用Set...
例如,VB6中的ComboBox控件有一个RemoveDuplicates属性,可以设置为True来自动去除重复。 6. 多步处理:在大型数据集的情况下,可以分批加载数据并即时去重,防止一次性处理大量数据导致的性能问题。 7. 实时监控...
### Python List列表中删除多个重复元素操作详解 在Python编程中,经常需要处理各种数据结构,其中`list`是最常用的数据类型之一。由于实际应用场景的需求多样,如何高效地操作列表中的元素成为了一项重要的技能。...
在Java中,去除List集合中的重复元素同样非常重要。下面是几种常见的方法。 ##### 方法一:使用For循环删除重复元素 这种方法通过两层循环来遍历List中的所有元素,并删除重复项。 **示例代码**: ```java ...
比较两个列表是否相等,可以使用`List<T>.SequenceEqual()`方法,它会检查两个列表的顺序和元素是否都相同: ```csharp List<string> compareList = new List(stringList); bool areEqual = stringList....
如果两个元素的`equals()`返回`true`,则认为它们是相同的元素。 在处理List时,有一些特定的方法用于操作元素: - **删除指定索引元素**:如果需要在List中删除某个索引位置的元素,通常需要创建一个新的List,...
在C语言中,链表节点通常由两个部分组成:数据域和指针域。数据域存储实际的元素值,而指针域指向下一个节点。对于本问题,我们假设链表中存储的是整型数值。因此,节点的定义如下: ```c typedef struct ListNode ...
如果两个对象的equals()返回true,那么它们的hashCode()也应相同,这样才能在HashSet中正确地处理重复元素。 【List集合元素替换】 使用List接口提供的set(int index, E element)方法可以替换指定索引处的元素。 ...
`Set`不允许任何重复元素,通常用于去除重复数据。 ##### 常用方法 - `add(E e)`:向集合中添加一个元素。 - `remove(Object o)`:从集合中移除指定的元素。 - `contains(Object o)`:判断集合是否包含指定元素。 ...
创建: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`集合去除重复 Java 8引入了`Set`接口的流操作,可以通过以下方式去重: ```java List<String> list = ...; List<String> uniqueList = list.stream() .distinct() .collect(Collectors.toList()); ```...
- **Map**:是一种键值对集合,每个键都是唯一的,用于关联两个对象,常用于快速查找场景。 #### Collection `Collection`接口是Java集合框架的核心接口之一,它定义了集合的基本行为,包括添加、删除、查询等操作...
这两个类在内部创建副本进行修改,从而允许在遍历时安全地修改集合,但请注意,这种方法不适合频繁的修改操作,因为它会创建新的集合实例,可能导致内存开销增加。 4. **使用流(Stream)操作(Java 8及以上版本)** ...