Comparator
package chap02;
public class Dog implements Comparable<Dog>{
private int id;
private String color;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Dog(int id, String color, int age) {
super();
this.id = id;
this.color = color;
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Dog other = (Dog) obj;
if (id != other.id)
return false;
return true;
}
public Dog() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Dog [id=" + id + ", color=" + color + ", age=" + age + "]";
}
@Override
public int compareTo(Dog o) {
// TODO Auto-generated method stub
return this.getId()-o.getId();
}
}
package chap02;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
public class TestDog {
public static void main(String[] args) {
//Dog dog = new Dog();
HashSet<Dog> hashSet = new HashSet<Dog>();
//ArrayList<Dog> list = new ArrayList<Dog>();
hashSet.add(new Dog(1,"dog1",1));
hashSet.add(new Dog(2,"dog2",2));
hashSet.add(new Dog(1,"dog1",1));
hashSet.add(new Dog(1,"dog1",1));
System.out.println(hashSet);
int size = hashSet.size();
//Collections.sort(hashSet);
System.out.println(hashSet);
System.out.println(size);
}
}
package chap02;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
public class TestDog {
public static void main(String[] args) {
//Dog dog = new Dog();
//HashSet<Dog> hashSet = new HashSet<Dog>();
ArrayList<Dog> list = new ArrayList<Dog>();
// hashSet.add(new Dog(1,"dog1",1));
// hashSet.add(new Dog(2,"dog2",2));
// hashSet.add(new Dog(1,"dog1",1));
// hashSet.add(new Dog(1,"dog1",1));
list.add(new Dog(1,"dog1",1));
list.add(new Dog(2,"dog2",2));
list.add(new Dog(1,"dog1",1));
list.add(new Dog(1,"dog1",1));
// System.out.println(list);
// int size = list.size();
Collections.sort(list);
System.out.println(list);
// System.out.println(size);
}
}
Comparable
package chap02;
public class Dog {
private int id;
private String color;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Dog(int id, String color, int age) {
super();
this.id = id;
this.color = color;
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Dog other = (Dog) obj;
if (id != other.id)
return false;
return true;
}
public Dog() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Dog [id=" + id + ", color=" + color + ", age=" + age + "]";
}
// @Override
// public int compareTo(Dog o) {
// // TODO Auto-generated method stub
// return this.getAge()-o.getAge();
// }
}
package chap02;
import java.util.Comparator;
import java.util.TreeSet;
public class TestDog2 {
public static void main(String[] args) {
TreeSet<Dog> dogs = new TreeSet<Dog>(new Comparator<Dog>() {
@Override
public int compare(Dog o1, Dog o2) {
// TODO Auto-generated method stub
return o1.getAge() -o2.getAge();
}
});
dogs.add(new Dog(1,"dog1",1));
dogs.add(new Dog(2,"dog2",2));
dogs.add(new Dog(1,"dog1",1));
dogs.add(new Dog(1,"dog1",1));
for (Dog dog : dogs) {
System.out.println(dog+" ");
}
System.out.println(dogs.size());
}
}