zoukankan      html  css  js  c++  java
  • HashSet

    /*
    
    |--Set :元素是无序(存入和取出的顺序不一定一致),元素不可用重复
    	|--HashSet :底层数据结构是哈希表
    			HashSet是如何保证元素唯一性?
    			是通过元素的两个方法, hashCode 和 equals 来完成
    			如果元素的HashCode 值相同,才会判断equals是否为true
    			如果元素的hashCode值不同 ,才会调用equals
    
    			注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode 和 equals
    	|--TreeSet
    
    Set 集合的功能和Coll
    
    */
    
    
    
    import java.util.*;
    
    class Person
    {
    	private String name;
    	private int age;
    
    	Person(String name,int age)
    	{
    		this.name =  name;
    		this.age = age;
    	}
    
    	public boolean equals(Object obj)
    	{
    		if(!( obj instanceof Person))
    			return false;	
    
    		Person p = (Person)obj;
    
    		return (this.name.equals(p.name) && this.age == p.age);
    
    	}
    
    	public int hashCode()
    	{
    		return this.name.hashCode();//此处调用String 类型的hashCode 
    									//不用这个也行 只不过用来做个标志 区别不同对象
     	}
    
    	public String getName()
    	{
    		return name;
    	}
    
    	public int getAge()
    	{
    		return age;
    	}
    
    
    }
    
    class HashSetDemo
    {
    	public static void main(String []args)
    	{
    		HashSet hs = new HashSet();
    
    		hs.add(new Person("Person1",11));//存入四个人
    		hs.add(new Person("Person2",11));
    		hs.add(new Person("Person3",11));
    		hs.add(new Person("Person1",11));
    		
    		Iterator it = hs.iterator();//迭代器
    
    		while( it.hasNext())//循环输出
    		{
    			Person p = (Person)it.next();
    			sop( p.getName() + " --- " + p.getAge());
    		}
    
    		sop(hs.contains(new Person("Person1",11)));
    
    		sop(hs.remove(new Person("Person1",11)));
    
    		sop(hs.contains(new Person("Person1",11)));
    
    
    	}
    
    	public static void sop(Object obj)//定义一个输出函数
    	{
    		System.out.println(obj);
    	}
    }

  • 相关阅读:
    CodeForces 955D
    C# 基础复习三 C#7
    C#各版本新功能 C#7.3
    同步基元概述
    C#各版本新功能 C#7.1
    C#各版本新功能 C#6.0
    C#各版本新功能 C#7.0
    js加载事件和js函数定义
    java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES) 最蠢
    消息管理-activemq
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258525.html
Copyright © 2011-2022 走看看