1. 程式人生 > >java TreeSet自然排序和定製排序

java TreeSet自然排序和定製排序

/*public int compareTo(Object obj){
       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按照KeyValue排序【轉】

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、氣泡排序 演算法如下(排序後,由小到大排列): /** * 氣泡排序 * 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。