最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Java Set 去除重復object的方法

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

實例如下:

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

/**
 * 編寫者:CP
 * <br />類描述:set集合針對String 類型和8大基礎數(shù)據(jù)類型 過濾掉重復數(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集合去除重復基礎數(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 去除重復object的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java的Hello World詳解

    Java的Hello World詳解

    當我們學習一門編程語言的時候,我們都會先學如何輸出Hello World!本文通過幾個例子給大家介紹輸出Hello World的代碼,感興趣的朋友一起看看吧
    2021-09-09
  • Spring容器的創(chuàng)建過程之如何注冊BeanPostProcessor詳解

    Spring容器的創(chuàng)建過程之如何注冊BeanPostProcessor詳解

    關于BeanPostProcessor 各位一定不陌生,今天整理的這篇文章總結(jié)了如何注冊BeanPostProcessor,文中有非常詳細的圖文示例,需要的朋友可以參考下
    2021-06-06
  • Jenkins如何實現(xiàn)自動打包部署linux

    Jenkins如何實現(xiàn)自動打包部署linux

    這篇文章主要介紹了Jenkins如何實現(xiàn)自動打包部署linux,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 深入淺出講解Java8函數(shù)式編程

    深入淺出講解Java8函數(shù)式編程

    不管是前端還是后端開發(fā)人員,學習一些函數(shù)式編程的思想和概念,對于手頭的開發(fā)工作和以后的職業(yè)發(fā)展,都是大有裨益的,下面這篇文章主要給大家介紹了關于Java8函數(shù)式編程的相關資料,需要的朋友可以參考下
    2022-01-01
  • jstl EL表達式遍歷Map的方法

    jstl EL表達式遍歷Map的方法

    這篇文章主要介紹了jstl EL表達式遍歷Map的方法的相關資料,需要的朋友可以參考下
    2016-12-12
  • 深入理解 CAS 算法原理已經(jīng)在jdk中的運用

    深入理解 CAS 算法原理已經(jīng)在jdk中的運用

    這篇文章主要介紹了深入理解 CAS 算法原理已經(jīng)在jdk中的運用,幫助大家更好的使用Java,感興趣的朋友可以了解下
    2020-12-12
  • 一文帶你搞懂Java中的泛型和通配符

    一文帶你搞懂Java中的泛型和通配符

    泛型機制在項目中一直都在使用,甚至很多源碼中都用到了泛型機制。但是里面很多的機制和特性一直沒有明白,尤其通配符這塊,經(jīng)常忘記。本文對此做了一些總結(jié),具有一定借鑒價值,希望有所幫助
    2022-09-09
  • java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)

    java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)

    java中在運用數(shù)組進行排序功能時,一般有四種方法:快速排序法、冒泡法、選擇排序法、插入排序法(希爾排序(Shell Sort)是插入排序的一種),下面是一些示例,需要的朋友可以參考下
    2014-03-03
  • Java中@RestController注解使用

    Java中@RestController注解使用

    在Spring框架中,@RestController注解是一個非常重要的注解,它用于將一個類標記為RESTful風格的控制器,本文就來介紹一下Java中@RestController注解使用,感興趣的可以了解一下
    2023-11-11
  • MyBatis映射關系詳解

    MyBatis映射關系詳解

    本文重點介紹MyBatis映射關系重點是映射關系一對一,一對一映射方式結(jié)合應用實例給大家詳細講解,對MyBatis映射關系相關知識感興趣的朋友一起看看吧
    2022-11-11

最新評論

绍兴县| 开鲁县| 公主岭市| 霍城县| 苍溪县| 天气| 建昌县| 获嘉县| 三台县| 深水埗区| 铜陵市| 石景山区| 大悟县| 江陵县| 兴文县| 开平市| 宜良县| 炉霍县| 康定县| 兰西县| 辽源市| 怀柔区| 区。| 泽库县| 白银市| 海晏县| 婺源县| 尚志市| 钟山县| 旌德县| 盐山县| 邓州市| 临沂市| 昌黎县| 平昌县| 来安县| 汽车| 湖北省| 宜良县| 祁连县| 元江|