欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Java Set 去除重復(fù)object的方法

 更新時間:2017年01月19日 11:09:33   投稿:jingxian  
下面小編就為大家?guī)硪黄肑ava Set 去除重復(fù)object的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

實例如下:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 編寫者:CP
 * <br />類描述:set集合針對String 類型和8大基礎(chǔ)數(shù)據(jù)類型 過濾掉重復(fù)數(shù)據(jù),如果存放的是其他類型對象,則需要重寫hashCode方法和equals方法,當equals 比較相等時,則會去比較hashCode值 hashCode的值 如果一致的話,則不會存進set
 */
public class SetDemo {
	
	public static void main(String[] args) {
		Set<String> nameSet = new HashSet<String>();
		nameSet.add("張三");
		nameSet.add("李四");
		nameSet.add("王五");
		nameSet.add("張三");
		
		// 輸出結(jié)果 張三	李四	王五
		for(String name : nameSet){
			System.out.print(name + "\t");
		}
		// List集合去除重復(fù)基礎(chǔ)數(shù)據(jù)
		List<String> nameList = new ArrayList<String>();
		nameList.add("張三");
		nameList.add("李四");
		nameList.add("王五");
		nameList.add("趙六");
		nameSet.addAll(nameList);
		
		// 輸出結(jié)果 張三	李四	王五	趙六
		for(String name : nameSet){
			System.out.print(name + "\t");
		}
		
		// 去除編號和用戶名一樣的 對象,需要重寫 equals 方法 和 hashCode方法
		User admin = new User(1, "admin");
		User user = new User(2, "user");
		User user1 = new User(2, "user");
		User admin1 = new User(3, "admin");
		
		
		Set<User> userSet = new HashSet<User>();
		userSet.add(admin);
		userSet.add(user);
		userSet.add(admin1);
		userSet.add(user1);
		// 輸入結(jié)果 admin1	admin3	user2
		for(User u : userSet){
			System.out.print(u.username + u.id + "\t");
		}
		
		System.out.println(user.equals(null));
	}
}

class User{
	
	protected Integer id;
	
	protected String username;
	
	public User(Integer id, String username){
		this.id = id;
		this.username = username;
	}


	/**
	 * 如果對象類型是User 的話 則返回true 去比較hashCode值
	 */
	@Override
	public boolean equals(Object obj) {
		if(obj == null) return false;
		if(this == obj) return true;
		if(obj instanceof User){ 
			User user =(User)obj;
//			if(user.id = this.id) return true; // 只比較id
			// 比較id和username 一致時才返回true 之后再去比較 hashCode
			if(user.id == this.id && user.username.equals(this.username)) return true;
			}
		return false;
	}



	/**
	 * 重寫hashcode 方法,返回的hashCode 不一樣才認定為不同的對象
	 */
	@Override
	public int hashCode() {
//		return id.hashCode(); // 只比較id,id一樣就不添加進集合
		return id.hashCode() * username.hashCode();
	}

	
}

以上這篇利用Java Set 去除重復(fù)object的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java注解處理器學(xué)習(xí)在編譯期修改語法樹教程

    java注解處理器學(xué)習(xí)在編譯期修改語法樹教程

    這篇文章主要為大家介紹了java注解處理器學(xué)習(xí)在編譯期修改語法樹教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 詳解Spring Boot自動裝配的方法步驟

    詳解Spring Boot自動裝配的方法步驟

    這篇文章主要介紹了詳解Spring Boot自動裝配的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 一篇文章教帶你了解Java Spring之自動裝配

    一篇文章教帶你了解Java Spring之自動裝配

    今天小編就為大家分享一篇關(guān)于Spring中的自動裝配,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-09-09
  • 掌握模塊化開發(fā)Spring Boot子模塊使用技巧

    掌握模塊化開發(fā)Spring Boot子模塊使用技巧

    這篇文章主要為大家介紹了掌握模塊化開發(fā)Spring Boot子模塊使用技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Java 8 Stream流強大的原理

    Java 8 Stream流強大的原理

    這篇文章主要介紹了Java 8 Stream流強大的原理,Java 8 API添加了一個新的抽象稱為流Stream,可以讓你以一種聲明的方式處理數(shù)據(jù)。本文會對Stream的實現(xiàn)原理進行剖析,具有一定的參考價值,需要的朋友可以參考一下
    2021-12-12
  • Spring Junit測試找不到SpringJUnit4ClassRunner.class的解決

    Spring Junit測試找不到SpringJUnit4ClassRunner.class的解決

    這篇文章主要介紹了Spring Junit測試找不到SpringJUnit4ClassRunner.class的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • java項目新建遇到的兩個問題解決

    java項目新建遇到的兩個問題解決

    創(chuàng)建一個新的Java項目可以通過多種方式進行,包括使用集成開發(fā)環(huán)境(IDE)或手動創(chuàng)建,下面這篇文章主要給大家介紹了關(guān)于java項目新建遇到的兩個問題,需要的朋友可以參考下
    2024-06-06
  • Java多線程ThreadPoolExecutor詳解

    Java多線程ThreadPoolExecutor詳解

    這篇文章主要介紹了Java多線程ThreadPoolExecutor詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Springboot2.0配置JPA多數(shù)據(jù)源連接兩個mysql數(shù)據(jù)庫方式

    Springboot2.0配置JPA多數(shù)據(jù)源連接兩個mysql數(shù)據(jù)庫方式

    這篇文章主要介紹了Springboot2.0配置JPA多數(shù)據(jù)源連接兩個mysql數(shù)據(jù)庫方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 淺談Spring5 響應(yīng)式編程

    淺談Spring5 響應(yīng)式編程

    本篇文章主要介紹了淺談Spring5 響應(yīng)式編程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論