在Java中,Set是一个接口,用于存储不重复的元素。要使用Set,您需要选择一个具体的实现类。以下是几个常用的Set实现类:
- HashSet:基于哈希表的实现,插入和查找的时间复杂度为O(1)。但是,它不保证元素的顺序。
import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) { Setset = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); set.add("apple"); // 重复元素,不会被添加到集合中 System.out.println("Set: " + set); } }
- TreeSet:基于红黑树的实现,插入和查找的时间复杂度为O(log n)。它会自动对元素进行排序。
import java.util.TreeSet; import java.util.Set; public class Main { public static void main(String[] args) { Setset = new TreeSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); set.add("apple"); // 重复元素,不会被添加到集合中 System.out.println("Sorted Set: " + set); } }
- LinkedHashSet:基于哈希表和链表的实现,插入和查找的时间复杂度为O(1)。它保留了元素的插入顺序。
import java.util.LinkedHashSet; import java.util.Set; public class Main { public static void main(String[] args) { Setset = new LinkedHashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); set.add("apple"); // 重复元素,不会被添加到集合中 System.out.println("LinkedHashSet: " + set); } }
- EnumSet:基于枚举类型的实现,适用于枚举类型的集合。插入和查找的时间复杂度为O(1)。
public enum Color { RED, GREEN, BLUE } import java.util.EnumSet; import java.util.Set; public class Main { public static void main(String[] args) { Setset = EnumSet.noneOf(Color.class); set.add(Color.RED); set.add(Color.BLUE); set.add(Color.GREEN); set.add(Color.RED); // 重复元素,不会被添加到集合中 System.out.println("EnumSet: " + set); } }
根据您的需求,可以选择合适的Set实现类来存储不重复的元素。