Java---HashSet的增删改查代码

一、插入类

import java.util.Objects;

/**
 * @author created  by jackie on 2020/4/23
 * @description:
 */

public class UserInfo {
    private String userName;
    private String city;

    public UserInfo(String userName, String city) {
        this.userName = userName;
        this.city = city;
    }


    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "userName='" + userName + '\'' +
                ", city='" + city + '\'' +
                '}';
    }

    @Override
    public int hashCode() {
        return Objects.hash(userName, city);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;  //判断对象是否相等
        if (o == null || getClass() != o.getClass()) return false;//判断传入对象o是否UserInfo的对象,如果不是肯定不相同
        UserInfo userInfo = (UserInfo) o;
        return Objects.equals(userName, userInfo.userName) &&
                Objects.equals(city, userInfo.city);//判断属性值是否相等
    }


}

二、代码

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @author created  by jackie on 2020/4/23
 * @description: 用hashSet添加自定义对象、查询对象信息
 */

public class HashSetDemo {
    @Test
    public void hashSetTest() {
        //实例化对象
        UserInfo userInfo1 = new UserInfo("jackie", "GuangZhou");
        UserInfo userInfo2 = new UserInfo("Ben", "ShenZhen");
        UserInfo userInfo3 = new UserInfo("lily", "Shanghai");
        UserInfo userInfo4 = new UserInfo("lily", "Shanghai");

        //将对象插入HashSet中
        Set set = new HashSet();
        set.add(userInfo1);
        set.add(userInfo2);
        set.add(userInfo3);
        set.add(userInfo4);//添加与userInfo3包含形同属性值相同的信息。如果在自定义类重写equals和hashcode方法就会添加不进去,达到去重效果。


        //利用迭代器遍历输出HashSet中储存的对象
        Iterator iter = set.iterator();
        while(iter.hasNext()){
            System.out.println(iter.next());
        }

        //查询1:在集合中查找信息;用对象名去找
        if(set.contains(userInfo1)){
            System.out.println("userInfo1对象存在");
        }else{
            System.out.println("userInfo1对象不存在");
        }

        //查询2:用对象某个属性去查找对象信息
        boolean flag = false ;
        Iterator iter2 = set.iterator();
        while(iter2.hasNext()){
            UserInfo info = (UserInfo)iter2.next();
            if(info.getUserName().equals("jackie")){
                flag = true;
                break;
            }else{

            }
        }
        if(flag){
            System.out.println("jackie找到了");
        }else{
            System.out.println("jackie找不到");
        }

        //删除对象
        set.remove(userInfo3);


    }


}
发布了23 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_29796711/article/details/105711005