没有合适的资源?快使用搜索试试~ 我知道了~
首页java中set接口使用方法详解
资源详情
资源评论
资源推荐

java中中set接口使用方法详解接口使用方法详解
主要为大家详细介绍了java中set接口使用方法,介绍了Java中Set集合接口实现插入对象不重复的原理,感兴趣
的小伙伴们可以参考一下
java中的set接口有如下的特点:
不允许出现重复元素;不允许出现重复元素;
集合中的元素位置无顺序;集合中的元素位置无顺序;
有且只有一个值为有且只有一个值为null的元素。的元素。
因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特性为:
互异性:互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
无序性:无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的。集合上可以定义序关系,定义了序关系后,元素之间
就可以按照序关系排序。但就集合本身的特性而言,元素之间没有必然的序。
空集的性质:空集的性质:空集是一切集合的子集
Set不保存重复的元素。Set中最常被使用的是测试归属性,你可以很容易的询问某个对象是否在某个Set中。Set具有与
Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只是行为不同。
实现了Set接口的主要有HashSet、TreeSet、LinkedHashSet这几个共同点就是每个相同的项只保存一份。他们也有不同
点,区别如下:
1.HashSet::
HashSet使用的是相当复杂的方式来存储元素的,使用HashSet能够最快的获取集合中的元素,效率非常高(以空间换时
间)。会根据hashcode和equals来庞端是否是同一个对象,如果hashcode一样,并且equals返回true,则是同一个对象,不
能重复存放。
package cn.set;
import java.util.HashSet;
import java.util.Set;
class Student{
int id;
public Student(int id) {
this.id = id;
}
@Override
public String toString() {
return this.id+"";
}
@Override
public int hashCode() {
return this.id;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Student){
Student stu = (Student) obj;
if (stu.id == this.id)
return true;
}
return false;
}
}
public class HashSetTest {
public static void main(String[] args) {
Set<Student> set = new HashSet<Student>();
Student s1 = new Student(1);
Student s2 = new Student(1);
Student s3 = new Student(2);
set.add(s1);
set.add(s2);
set.add(s3);
for (Student s : set) {
System.out.println(s);
}
}
}
正如上例所示,重写了hashCode()和equals()方法来区分同意对象后,就不能存放同以对象了。如果注释这两个方法,则所有


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0