如果是list则 转 list --> set
HashSet, TreeSet 均可以实现元素唯一,以便比较。但前者元素无序,故速度快。 后者元素有序,如需二分查找之类算法有优势。
具体代码:
package com.nicekevin.test;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class CompareList {
public static void main(String[] args) throws Exception {
// Set<String> set1 = new TreeSet<String>();
// Set<String> set2 = new TreeSet<String>();
Set<String> set1 = new HashSet<String>();
Set<String> set2 = new HashSet<String>();
set1.add("aa");
set1.add("aa");
set1.add("bb");
set1.add("cc");
set1.add("ca");
set2.add("bb");
set2.add("aa");
set2.add("cc");
set2.add("ca");
Iterator it1 = set1.iterator();
while (it1.hasNext()) {
System.out.print(it1.next().toString() + "\t");
}
System.out.println();
Iterator it2 = set2.iterator();
while (it2.hasNext()) {
System.out.print(it2.next().toString() + "\t");
}
System.out.println();
System.out.println("kaka = " + compareSet(set1, set2));
}
public static boolean compareSet(Set set1, Set set2) throws Exception {
if(set1.size() != set2.size()) {
return false;
}
Iterator it1 = set1.iterator();
while(it1.hasNext()) {
if (!set2.contains(it1.next().toString())) {
return false;
}
}
return true;
}
}
分享到:
相关推荐
### Java 计算同一 List 中是否有相同值 在 Java 编程中,判断一个 `List` 中是否存在重复元素是一项常见的需求。特别是在数据处理、验证或分析等场景中,确保数据的唯一性对于维持数据完整性至关重要。 #### 核心...
两个List集合取相同重复数据的方法 在Java编程中,集合操作是非常常见的,而在实际开发中,我们经常遇到需要从两个List集合中提取相同的重复数据的情况。这篇文章将为大家分享一个关于两个List集合取相同重复数据的...
- **string equal**:比较两个字符串是否相等。 - **string first**:查找字符串首次出现的位置。 - **string index**:查找字符在字符串中的位置。 - **string last**:查找字符串最后一次出现的位置。 - **string ...
1. **Set接口**:Set接口代表了一个不允许有重复元素的集合。实验中提到了两个主要的实现类:HashSet和TreeSet。HashSet基于哈希表实现,插入和查询元素的速度通常较快,但元素无特定顺序。而TreeSet基于红黑树数据...
- **集合**:包括List、Set等,其中List保持插入顺序,而Set不允许重复元素。 - **映射**:如HashMap、TreeMap等,通过键值对进行存储和检索。 #### 1.2 Collection `Collection`是Java集合框架的根接口,所有具体...
Set集合在Java编程语言中是一种基础且重要的数据结构,它主要特点是存储不重复的元素,且没有特定的插入顺序。接下来我们将深入探讨Set集合的基本特点、底层去重原理以及如何进行排序。 首先,让我们理解Set集合的...
1. Java容器主要包括Collection(单列集合)、List(有序可重复集合)、Set(无序不重复集合)和Map(键值对集合)。 2. Collection和Collections的区别:Collection是所有单列集合接口的父接口;Collections是针对...
HashSet 是一种不允许重复元素的集合,因此可以用来删除重复数据。首先将列表转换为 HashSet,然后将 HashSet 转换回列表。这种方法的时间复杂度为 O(n),因此适合大型列表。 ```java public static void remove...
此方法用于比较两个对象是否相等。 **示例代码:** ```scala val list1 = List(1, 2, 3) val list2 = List(1, 2, 3) val equalLists = list1.equals(list2) // 结果为 true ``` #### 16. `def exists(p: (A) => ...
在Java编程中,集合是用来存储一组对象的数据结构。...这种方法不仅适用于`List`,也适用于其他不允许重复元素的集合,如`Set`和`HashSet`。在实际开发中,合理地实现这些方法是确保集合正确处理对象的关键步骤。
2. **可重复性**:List接口允许元素重复,可以有多个相同的元素存在于列表中。 3. **线程安全性**:ArrayList是非线程安全的,而Vector是线程安全的,但效率较低。在多线程环境下,需要通过同步机制来保证线程安全...
当我们需要对 List 集合进行去重操作时,通常的做法是将其转换为 Set 集合,因为 Set 集合不允许重复元素。但是,事情并不是那么简单。 如果 List 集合中的元素是简单对象,如 Integer、String 等,那么使用 List ...
在Java编程语言中,`List`接口是集合框架的重要组成部分,它提供了有序元素集合的实现,并允许重复元素的存在。本文将详细解释`List`接口中的常用方法,帮助开发者更好地理解和运用这些功能强大的工具。 #### 1. ...
这样,Set在比较元素时,可以通过比较哈希码快速确定是否有可能相等,然后再调用`equals()`进行精确判断。在`User`类中,`hashCode()`应根据`id`和`username`计算: ```java @Override public int hashCode() { //...
- 泛型允许在集合中指定元素类型,如`List<String>`表示存储字符串的列表。`List<?>`表示未指定类型的列表,一旦赋值后不能随意添加不同类型的元素。 9. **元素比较**: - `Comparable`接口用于元素自身比较,如`...
比较两个列表是否相等,可以使用`List<T>.SequenceEqual()`方法,它会检查两个列表的顺序和元素是否都相同: ```csharp List<string> compareList = new List<string>(stringList); bool areEqual = stringList....
7. equals():比较两个集合是否相等。 8. hashCode():返回集合的哈希码。 六、泛型与集合 1. 泛型:Java泛型允许在集合中存储特定类型的数据,提高代码安全性和可读性。 2. 泛型集合示例:`List<String> list = ...
### Java集合基础习题解析及答案 #### 题目一:统计子字符串在字符串中的出现次数 **题目描述:** 编写一个Java程序,定义一个方法`getCount`,该方法接收两个参数:一个字符串`str`和一个子字符串`s`,返回`s`在`...