集合Set
Set是Java中的一种数据集合类型,它是一个不允许重复元素的集合。Set中的元素没有特定的顺序,因此不能通过索引来访问元素。
Set的主要方法(HashSet)
1. add()
向Set中添加元素,如果元素已经存在,则不会添加。
Set<String> set = new HashSet<>(); //创建一个HashSet
set.add("apple");
set.add("banana");
set.add("apple"); // 不会添加```
2. remove()
从Set中删除指定元素。
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.remove("apple");
3. contains()
判断Set中是否包含指定元素。
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
boolean containsApple = set.contains("apple"); // true
boolean containsOrange = set.contains("orange"); // false
4. size()
获取Set中元素的数量。
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
int size = set.size(); // 2
5. clear()
清空Set中的所有元素。
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.clear();
Set的使用示例
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("orange");
set.add("apple"); // 不会添加
System.out.println("Set中的元素数量:" + set.size()); // 3
boolean containsApple = set.contains("apple"); // true
boolean containsOrange = set.contains("orange"); // true
boolean containsGrape = set.contains("grape"); // false
System.out.println("Set中是否包含apple:" + containsApple); // true
System.out.println("Set中是否包含orange:" + containsOrange); // true
System.out.println("Set中是否包含grape:" + containsGrape); // false
set.remove("apple");
System.out.println("Set中的元素数量:" + set.size()); // 2
set.clear();
System.out.println("Set中的元素数量:" + set.size()); // 0
}
}
扩展阅读:Set的实现类
Java中有多种Set的实现类,常用的有HashSet
、LinkedHashSet
、和TreeSet
。最常用的是HashSet
.
1. HashSet
HashSet
是基于哈希表实现的Set
,它不保证元素的顺序。HashSet
中的元素是无序的,因此不能通过索引来访问元素。
Set<String> set = new HashSet<>();
2. LinkedHashSet 选学
LinkedHashSet
是基于哈希表和链表实现的Set
,它保证元素的顺序与添加顺序一致。
Set<String> set = new LinkedHashSet<>();
3. TreeSet 选学
TreeSet
会对元素按照自然顺序自动从小大到大排序。
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>();
set.add(3);
set.add(1);
set.add(2);
System.out.println("TreeSet中的元素:" + set); // [1, 2, 3]
boolean containsOne = set.contains(1); // true
boolean containsFour = set.contains(4); // false
System.out.println("TreeSet中是否包含1:" + containsOne); // true
System.out.println("TreeSet中是否包含4:" + containsFour); // false
set.remove(2);
System.out.println("TreeSet中的元素:" + set); // [1, 3]
int first = set.first(); // 1
int last = set.last(); // 3
System.out.println("TreeSet中的第一个元素:" + first); // 1
System.out.println("TreeSet中的最后一个元素:" + last); // 3
}
}