62,614
社区成员
发帖
与我相关
我的任务
分享
public class Person{
String name;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2:Mycomparator.java-------------------------------
//实现Comparator接口,也就是定义排序规则,你几乎可以定义任何规则
package com.infoearth;
import java.util.*;
public class Mycomparator implements Comparator{
public int compare(Object o1,Object o2) {
Person p1=(Person)o1;
Person p2=(Person)o2;
if(p1.age<p2.age)
return 1;
else
return 0;
}
}
3:ListSort.java------------------------------------
package com.infoearth;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ListSort {
public static void main(String[] args){
ArrayList list = new ArrayList();
list.add(new Person("lcl",28));
list.add(new Person("fx",23));
list.add(new Person("wqx",29));
Comparator comp = new Mycomparator();
Collections.sort(list,comp);
for(int i = 0;i<list.size();i++){
Person p = (Person)list.get(i);
System.out.println(p.getName());
}
}
}
或者写成实现Comparator接口的匿名类
Collections.sort(list);
Collections.sort(list, new Comparator() {
public int compare(Object o1,Object o2) {
Person p1=(Person)o1;
Person p2=(Person)o2;
if(p1.age<p2.age)
return 1;
else
return 0;
}
});
public class customer {
/**
* @param args
*/
public static void main(String[] args) {
//创建两个对象
customer c1 = new customer(1, "haha");
customer c2 = new customer(1, "haha");
Map<customer, String> m = new HashMap<customer, String>();
//把c1当作键值
m.put(c1, "我是"+c1.name);
//使用c2取c1
String cname = (String)m.get(c2);
System.out.println(cname);
}
public customer(int i, String n) {
id = i;
name = n;
}
int id;
String name;
@Override
public int hashCode() {
return (this.name + this.id).hashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o instanceof customer) {
customer anotherCustomer = (customer) o;
return anotherCustomer.id == this.id
&& anotherCustomer.name.equals(this.name);
}
return false;
}
}