集合是一个不能包含重复元素的 Collection
。它模拟了数学上的集合抽象。
Set
接口仅包含了从 Collection
继承的方法,并增加了禁止重复元素的限制。
Set
还加强了 equals
和 hashCode
操作的行为规范,使得即使其实现类型不同,Set
实例之间也可以有意义地进行比较。
集合(Set)接口方法
以下是 Set
接口中声明的方法:
序号 |
方法 & 描述 |
1 |
add( ) 将一个对象添加到集合中。 |
2 |
clear( ) 从集合中移除所有对象。 |
3 |
contains( ) 如果指定的对象是集合内的元素,则返回 true 。 |
4 |
isEmpty( ) 如果集合没有元素,则返回 true 。 |
5 |
iterator( ) 返回集合的一个 Iterator 对象,可用于检索对象。 |
6 |
remove( ) 从集合中移除一个指定的对象。 |
7 |
size( ) 返回集合中的元素数量。 |
集合(Set)接口示例
集合在多种类中有实现,如 HashSet
、TreeSet
、LinkedHashSet
。下面是 Java 中一些实现 Set
接口的例子。
使用 HashSet
实现集合的示例
下面是一个使用 HashSet
解释集合功能的例子:
import java.util.HashSet;
import java.util.Set;
public class SetDemo {
public static void main(String args[]) {
int count[] = {34, 22, 10, 60, 30, 22};
Set<Integer> set = new HashSet<>();
try {
for(int i = 0; i < 5; i++) {
set.add(count[i]);
}
System.out.println(set);
}
catch(Exception e) {}
}
}
输出:
[34, 22, 10, 60, 30]
使用 TreeSet
实现集合的示例
下面是一个使用 TreeSet
解释集合功能的例子:
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetDemo {
public static void main(String args[]) {
int count[] = {34, 22, 10, 60, 30, 22};
Set<Integer> set = new HashSet<>();
try {
for(int i = 0; i < 5; i++) {
set.add(count[i]);
}
System.out.println(set);
TreeSet<Integer> sortedSet = new TreeSet<>(set);
System.out.println("The sorted list is:");
System.out.println(sortedSet);
System.out.println("The First element of the set is: " + (Integer)sortedSet.first());
System.out.println("The last element of the set is: " + (Integer)sortedSet.last());
}
catch(Exception e) {}
}
}
输出:
[34, 22, 10, 60, 30]
The sorted list is:
[10, 22, 30, 34, 60]
The First element of the set is: 10
The last element of the set is: 60
使用 LinkedHashSet
实现集合的示例
下面是一个使用 LinkedHashSet
操作来解释集合功能的例子:
import java.util.LinkedHashSet;
import java.util.Set;
public class SetDemo {
public static void main(String args[]) {
int count[] = {34, 22, 10, 60, 30, 22};
Set<Integer> set = new LinkedHashSet<>();
try {
for(int i = 0; i < 5; i++) {
set.add(count[i]);
}
System.out.println(set);
}
catch(Exception e) {}
}
}
输出:
[34, 22, 10, 60, 30]