java TreeSet自然排序和定製排序
if(obj instanceof Employee){
Employee e = (Employee) obj;
return this.name.compareTo(e.name);
}
return 0;
}*/
public int hashCode(){
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((birthday==null)? 0 : birthday.hashCode());
result = prime * result + ((name == null)?0:name.hashCode());
return result;
}
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(getClass() != obj.getClass()){
return false;
}
Employee e =(Employee) obj;
if(this.age != e.age){
return false;
}
if(this.name == null){
if(e.name !=null){
return false;
}
}else if(! this.name.equals(e.name)){
return false;
}
if(this.birthday == null){
if(e.birthday !=null){
return false;
}
}else if(! this.birthday.equals(e.birthday)){
return false;
}
return true;
}
}
class MyDate{
private int month;
private int day;
private int year;
public MyDate(int m,int d,int y){
month =m;
day = d;
year =y;
}
public void setMonth(int month){
this.month = month;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public void setDay(int day){
this.day = day;
}
public void setYear(int year){
this.year = year;
}
public int getYear(){
return year;
}
public String toString(){
return year + "."+ month +"."+day;
}
public int hashCode(){
final int prime = 31;
int result = 1;
result = prime * result + day;
result = prime * result + month;
result = prime * result + year;
return result;
}
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj == null){
return false;
}
if(getClass() != obj.getClass()){
return false;
}
MyDate d = (MyDate) obj;
if(day != d.day){
return false;
}
if(month != d.month){
return false;
}
if(year != d.year){
return false;
}
return true;
}
}
相關推薦
java TreeSet自然排序和定製排序
/*public int compareTo(Object obj){ if(obj instanceof Employee){ Employee e = (Employee) obj; return this.name.compareTo(e.name);
TreeSet舉例自然排序和定製排序
公共類: package com.ex; import java.util.Objects; public class MyDate { private int day;
java集合 TreeMap 使用自然排序和定製排序
import java.util.Comparator; import java.util.TreeMap; public class Demo3 { public static void main(String[] args) { Sy
TreeSet ------自然排序與定製排序(比較器)
前言:TreeSet集合是Set集合的一個子實現類,它是基於TreeMap中的NavigableSet介面實現的,TreeSet集合是預設通過自然排序將集合中的元素進行排序 TreeSet有兩種排序方式: 1)自然排序 2)比較器排序 1. 自然排序: 在TreeSe
Java Map按照Key和Value排序【轉】
try lin tor put array ava ble nbsp key package kingtool.sort; import java.util.ArrayList; import java.util.Collections; import java.ut
Java 的冒泡排序、直接選擇排序和反轉排序方法
int sys nbsp arr i++ tostring ava ++ arrays 冒泡排序: System.out.println(Arrays.toString(arr)); int temp = -1; for(int i=0;i<arr.length;i+
用Java實現的選擇排序和冒泡排序
auth main sta -i str public java index 選擇 選擇排序 package cn.hxd.sort; /** * 選擇排序 * @author Administrator * */ public class SelectionSo
使用C語言和Java分別實現冒泡排序和選擇排序
都沒有 img 容易 n) 不穩定排序 實現 imp 結果 輸出 經典排序算法——冒泡和選擇排序法 Java實現冒泡排序 基本思想是,對相鄰的元素進行兩兩比較,順序相反則進行交換,這樣,每一趟會將最小或最大的元素放到頂端,最終達到完全有序,首先看個動圖: 我們要清楚一點,
氣泡排序和快速排序(java實現)
氣泡排序 Bubble Sort 在基於 “交換” 進行排序的方法中,氣泡排序是比較簡單的一種。 /** * 氣泡排序 * 時間複雜度為O(n^2),空間複雜度為O(1) */ public static int[] bubbleSort(int[] array){
JAVA中陣列氣泡排序和選擇排序
氣泡排序的思想:兩兩之間比較大小,小的數在前,大的數在後。共比較i-1次。 static void MaoPaoArray(int[] a) { for (int i = 0; i < a.length - 2; i++) { for (int j = 0; j <
java用遞迴篩選法求N以內的孿生質數(孿生素數)--附氣泡排序和插入排序練習
本人最近讀完一本書《質數的孤獨》,裡面講到孿生質數,就想查一下孿生質數的分佈情況。其中主要用到了計算質數(素數)的方法,搜了一下,排名前幾的都是用for迴圈來做的,感覺略微麻煩了一些,在比較一些還是覺得用遞迴篩選法來解決這個問題。 新建List<Integer>,然後從第0位開始,如
java基本排序演算法之選擇排序和插入排序
一.選擇排序 一種簡單直觀的排序演算法,特點是效率低,容易實現,速度較氣泡排序快。 思想:遍歷,每一趟從待排序的序列裡取出一個最小的數排在排好序的序列裡面,剩下的重複上述步驟直到排完。 比較簡單直接貼程式碼: public static void xuanze(int
用java實現氣泡排序和選擇排序
氣泡排序:依次比較兩個相鄰的元素,將值大的元素交換至右端,一輪比較過後,最大的元素在最右端。 public class BubbleSort { public static void main(String[] args) { int[] arr
Java快速排序和歸併排序區別和實現
快速排序與歸併排序的概念: 快速排序(Quicksort)是對氣泡排序的一種改進。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通過一趟排序將要排序的資料分割成獨立的兩
新手必看——JAVA排序詳解(氣泡排序和插入排序)
對於排序,它一直不厭其煩的出現在企業面試初級工程師的筆試題中,不管是氣泡排序還是插入排序,我們經常會在在初級面試題中遇見,就好像它已成為一種面試的標準。而對於程式設計師來說,基本排序就真的這麼重要嗎?當然不,作為一個老司機的我們已經知道,對於新手很心累的各種
Java中的選擇排序和氣泡排序思想及程式碼實現
選擇排序 選擇排序基本思想(假設從大到小排序): 初始化一個數組:int[] array={n個數據} 第1次排序:將索引為0的元素取出來,用該元素與之後的每一個元素做比較,比該元素小則不動,比該元素大則交換二者的數值,依次比較到最後,這樣最大值就放到了索引為0
Java排序演算法之氣泡排序和選擇排序
import java.util.Arrays; class Demo { public static void main(String[] args) { int
Java實現堆排序和計數排序
ret wap static 堆排序 變更 heapsort mil 葉子節點 source 堆排序代碼: import java.util.Arrays; /** * 思路:首先要知道大頂堆和小頂堆,數組就是一個堆,每個i節點的左右孩子是2i+1和2i+2
桶排序和基數排序 Java
public class RadixSort_Letter{ public static void main(String[] args){ //宣告要排序的陣列 String[] a = {"ac","ee","ef","b","z","f","ep",
排序演算法之氣泡排序和快速排序(Java版)
轉自:http://www.cnblogs.com/0201zcr/p/4763806.html 作者:Whywin 1、氣泡排序 演算法如下(排序後,由小到大排列): /** * 氣泡排序 * 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。