你的位置:首页 > 软件开发 > Java > Java的HashSet类

Java的HashSet类

发布时间:2015-07-12 00:00:05
如果要查找一个集合中是否包含了某个对象,那么就需要把这个对象和这个集合中的每个对象依次进行比较和判断,直到找到这个对象为止,或者把所有对象都比较一次为止(如果最后一个对象才是要查找的对象,或者集合中没有包含要查找的对象)。当集合中的对象数量较多时,效率就很低。为了提高效率,提出了 ...

Java的HashSet类

如果要查找一个集合中是否包含了某个对象,那么就需要把这个对象和这个集合中的每个对象依次进行比较和判断,直到找到这个对象为止,或者把所有对象都比较一次为止(如果最后一个对象才是要查找的对象,或者集合中没有包含要查找的对象)。当集合中的对象数量较多时,效率就很低。为了提高效率,提出了Hash算法。Hash算法对每一个对象都计算出一个Hash码,根据Hash码把对象分配到某个存储区域中,比如一个集合包含了很多人,根据国籍,中国人是一个存储区域,美国人是一个存储区域,英国人是一个存储区域,......。这样如果要查找该集合是否包含了某个中国人,就到中国人的存储区域去比较就行了,这样大大提高了效率。

Java中实现了Hash的集合是HashSet。HashSet查找某个对象时,首先用hashCode()方法计算出这个对象的Hash码,然后再根据Hash码到相应的存储区域用equals()方法查找,从而提高了效率。由于是集合,所以同一个对象只能有一个。

hashSet的例子如下所示:

package my;import java.util.HashSet;import java.util.Set;class Person{    // 性别  String sex;  // 姓名  String name;  // 身高  Double hei;  // 体重  Double wei;    public Person(String n, String s, Double h, Double w){      this.name=n;    this.sex=s;    this.hei=h;    this.wei=w;        }    public String toString(){    return "\n姓名:"+this.name+" 性别:"+this.sex+" 身高:"+this.hei+" 体重:"+this.wei;      }  }public class myHS {  private static Set<Person> mySet = new HashSet<Person>();  public static void main(String[] args) {    mySet.add(new Person("Tom","Male",170.0,70.0));      mySet.add(new Person("Peter","Male",175.0,70.0));    mySet.add(new Person("Kate","Female",168.0,60.0));    mySet.add(new Person("Alice","Female",161.0,55.0));    mySet.add(new Person("Jack","Male",190.0,95.0));    mySet.add(new Person("Jack","Male",190.0,95.0));    System.out.println(mySet);  }}

原标题:Java的HashSet类

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。