zoukankan      html  css  js  c++  java
  • java集合框架(hashSet自定义元素是否相同,重写hashCode和equals方法)

    /*HashSet 基本操作
    * --set:元素是无序的,存入和取出顺序不一致,元素不可以重复
    * (通过哈希值来判断是否是同一个对象)
    * ----HashSet:底层数据结构是哈希表,
    * 保证数据唯一性的方法是调用存入元素的hashCode()方法
    * 和equals(Object obj)方法
    * HashCode值相同,才会调用equals方法
    *
    * */

     1 import java.util.HashSet;
     2 import java.util.Iterator;
     3 public class StudentCode {
     4     
     5     public static void main(String []args){
     6         //定义HashSet,并添加数据
     7         HashSet hs=new HashSet();
     8         hs.add(new Person("lisi",11));
     9         hs.add(new Person("zhangsan",22));
    10         hs.add(new Person("lisi",22));
    11         hs.add(new Person("lisi",11));
    12         //遍历数据(在用迭代器输出数据时,只能用迭代器进行数据操作:增删改查,不可用对象进行操作)
    13         for(Iterator it=hs.iterator();it.hasNext();){
    14             Person p=(Person)it.next();
    15             System.out.println("姓名:"+p.getName()+",年龄:"+p.getAge());
    16         }
    17     }
    18 }
    19 class Person{
    20     private String name;
    21     private int age;
    22     Person(String name,int age){
    23         this.name=name;
    24         this.age=age;
    25     }
    26     public String getName(){
    27         return this.name;
    28     }
    29     public int getAge(){
    30         return this.age;
    31     }
    32     //重写hashCode()方法,返回一个固定的哈希值
    33     public int hashCode(){
    34         return 60;
    35     }
    36     //重写equals(Object obj)方法,定义所需要的变量比较
    37     public boolean equals(Object obj){
    38         //判断传入的Obj是否是由Person下转型的变量
    39         if(!(obj instanceof Person))
    40             return false;
    41         //对传入对象上转型为Person对象
    42         Person p=(Person)obj;
    43         //判断两个对象是否名字和年龄相等,相等则认为是同一个对象
    44         return this.name.equals(p.getName())&&this.age==p.getAge();
    45     }
    46 }
  • 相关阅读:
    构造函数
    时延(delay,latency)
    吞吐量
    带宽(band-width)
    单位
    bps
    比特(bit)
    速率
    C语言中的“>>”和“<<”
    C#中unit
  • 原文地址:https://www.cnblogs.com/zxxiaoxia/p/4241589.html
Copyright © 2011-2022 走看看