在Java中,有几种不重复的集合(也称为Set),它们可以存储不重复的元素。这些集合是:
HashSet:这是一个基于哈希表的Set实现,它以O(1)的时间复杂度支持添加、删除和查询元素。它不保证元素的顺序,因为元素的存储位置是由元素的哈希值决定的。HashSet使用equals()和hashCode()方法来比较和计算元素的哈希值。
TreeSet:这是一个基于红黑树的Set实现,它以O(log n)的时间复杂度支持添加、删除和查询元素。它保证元素按照自然顺序或者自定义顺序排序。TreeSet使用compareTo()方法来比较元素。
LinkedHashSet:这是一个基于哈希表和链表的Set实现,它以O(1)的时间复杂度支持添加、删除和查询元素。它保证元素按照插入顺序排序,因为元素是通过链表链接的。LinkedHashSet使用equals()和hashCode()方法来比较和计算元素的哈希值。
下面是一些简单的示例,展示了如何使用这些集合:
import java.util.*;
public class SetExample {
 public static void main(String[] args) {
 // HashSet example
 Set<String> hashSet = new HashSet<>();
 hashSet.add("apple");
 hashSet.add("banana");
 hashSet.add("orange");
 hashSet.add("apple"); // adding duplicate element
 System.out.println("HashSet: " + hashSet);
// TreeSet example
 Set<Integer> treeSet = new TreeSet<>();
 treeSet.add(5);
 treeSet.add(3);
 treeSet.add(8);
 treeSet.add(3); // adding duplicate element
 System.out.println("TreeSet: " + treeSet);
// LinkedHashSet example
 Set<String> linkedHashSet = new LinkedHashSet<>();
 linkedHashSet.add("apple");
 linkedHashSet.add("banana");
 linkedHashSet.add("orange");
 linkedHashSet.add("apple"); // adding duplicate element
 System.out.println("LinkedHashSet: " + linkedHashSet);
 }
}
在上面的示例中,我们使用三个不同的集合类型:HashSet、TreeSet和LinkedHashSet来存储字符串或整数元素。我们尝试添加重复的元素,并打印每个集合来查看它们是否保留了不重复的元素。
 
             
             
       
      
 
                   
                   
                   
                   
                  
 
                     
                     
                     
                     
                     
                     
                     
                     
       
         京公网安备 11010802030320号
京公网安备 11010802030320号