HashSet(): 初始容量是16,默认装填因子是0.75。
HashSet(Collection c)
HashSet(int initialCapacity)
HashSet(int initialCapacity, float loadFactor)
例:HashSetDemo.java
import java.util.*;
public class HashSetDemo {
public static void main(String[] args) {
Set<String> words = new HashSet<>();
words.add("one");
words.add("two");
words.add("three");
words.add("one"); //不能将重复元素添加到集合中
for(String s:words)
System.out.print(s+" ");
}
}
s1.addAll(s2):实现集合s1与s2的并运算。
s1.retainAll(s2):实现集合s1与s2的交运算。
s1.removeAll(s2):实现集合s1与s2的差运算。
s1.containAll(s2):如果s2是s1的子集,该方法返回true。
TreeSet()
TreeSet(Collection c)
TreeSet(Comparator c)
例:TreeSetDemo.java
import java.util.*;
public class TreeSetDemo{
public static void main(String[] args){
Set<String> ts = new TreeSet<>();
String[] s = new String[]{"one","two","three","four"};
for (int i = 0; i < s.length; i++){
ts.add(s[i]); // TreeSet中的元素将自动排序
}
System.out.println(ts);
}
}
E first(): 返回有序集合中的第一个元素。
E last(): 返回有序集合中的最后一个元素。
SortedSet<E> subset(E from, E to): 返回从元素from到to(不包含)结束的子有序集合。
SortedSet<E> headset(E to): 返回小于元素to的子有序集合。
SortedSet<E> tailset(E from): 返回大于等于元素from的子有序集合。
Comparator<? super E> comparator(): 返回与该有序集合相关的比较器,若集合采用自然顺序,返回null。
例:SortedSetDemo.java
import java.util.*;
public class SortedSetDemo{
public static void main(String[] args) {
SortedSet<String> set = new TreeSet<>();
set.add("one");
set.add("two");
set.add("three");
System.out.println(set); //[one, three, two]
System.out.println(set.first());
System.out.println(set.last());
System.out.println(set.subSet("one", "three"));
System.out.println(set.headSet("two"));
System.out.println(set.tailSet("three"));
System.out.println(set.comparator());
}
}
例: 使用TreeSet类实现字符串的正序及逆序排序。
import java.util.*;
public class DescSortDemo{
public static void main(String[] args){
String[] s = {"China", "England","France","America","Russia",};
Set<String> ts = new TreeSet<>();
for(int i = 0; i < s.length; i ++)
ts.add(s[i]);
System.out.println(ts);
//使用Lambda表达式实现字符串倒序
ts = new TreeSet<>((String s1, String s2) -> s2.compareTo(s1));
// 将数组s中的元素添加到TreeSet对象中
for(int i = 0; i < s.length; i ++)
ts.add(s[i]);
System.out.println(ts);
}
}
在Java中,Set是一个不包含重复元素的集合。Set接口主要由HashSet、LinkedHashSet和TreeSet等类实现,每个实现类都有其特定的用途和特性。下面,我将给出一个使用HashSet的简单例子,因为HashSet是Set接口的一个常用实现,它基于哈希表实现,不保证集合的迭代顺序。
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
// 创建一个HashSet对象
Set<String> mySet = new HashSet<>();
// 向HashSet中添加元素
mySet.add("Apple");
mySet.add("Banana");
mySet.add("Cherry");
mySet.add("Date"); // 注意:即使再添加一次"Apple",它也不会被重复添加
mySet.add("Apple");
// 遍历HashSet
System.out.println("Set contains the following elements:");
Iterator<String> iterator = mySet.iterator();
while(iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
// 检查Set是否包含某个元素
if(mySet.contains("Banana")) {
System.out.println("The set contains Banana.");
}
// Set的大小
System.out.println("Size of the set: " + mySet.size());
// 移除元素
mySet.remove("Cherry");
System.out.println("After removing Cherry, the set contains:");
for(String str : mySet) { // 使用增强的for循环遍历Set
System.out.println(str);
}
// 清空Set
mySet.clear();
System.out.println("After clearing the set, is it empty? " + mySet.isEmpty());
}
}
这段代码首先创建了一个HashSet<String>
的实例,并向其中添加了一些字符串元素(包括一个重复的元素,但HashSet不会存储重复元素)。然后,它使用Iterator遍历了集合中的所有元素,并打印出来。接着,它检查集合是否包含某个特定元素(在这个例子中是"Banana"),并输出了集合的大小。之后,它移除了集合中的一个元素(“Cherry”),并再次遍历集合以显示更改后的内容。最后,它清空了集合,并检查集合是否为空。
博主用心写,读者点关注,互动传真情,知识不迷路。