您的位置:首页 > 编程语言 > Java开发

java之TreeSet里添加自定义对象

2016-07-22 21:05 411 查看
以一个例子来说明:

package javastudy;

import java.util.Comparator;

import java.util.Iterator;

import java.util.TreeSet;

4000

//一一个类文件里面可以有多个类,但是只能有一个public类,且public类的名字要和文件的名字相同

public class Testit {

public static void main(String[] args) {
// TreeSet是有序的,可以根据自己定义的方法来做出判断
// TreeSet<Person> ts = new TreeSet<Person>();
// ts.add(new Person("Jack",20));
// ts.add(new Person("Mary",18));
// ts.add(new Person("Mike",25));
// // print1(ts);
// Iterator<Person> it = ts.iterator();//遍历器遍历所有元素
//
// while(it.hasNext())
// {
// //it.next().print();
// Person p = it.next();
// p.print();//利用下面Person类中的print输出方法来输出结果
// }
//
// }
// static void print1( TreeSet<Person> ts)
// {
// Iterator<Person> it = ts.iterator();
// while(it.hasNext())
// {
// //it.next().print();
// Person p = it.next();
// p.print();//利用下面Person类中的print输出方法来输出结果
// }
//
// }class Dog//注意创建一个class ,后面的名字不需要小括号

TreeSet<Dog> ts = new TreeSet<Dog>(new MyCom());
ts.add(new Dog("MaoMao", 5));
ts.add(new Dog("HuaHua", 6));
ts.add(new Dog("NiuNiu", 10));
Iterator<Dog> it = ts.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}

}

// 定义一个比较的类

class MyCom implements Comparator<Dog> {

@Override
public int compare(Dog o1, Dog o2) {
// TODO Auto-generated method stub
return o1.name.compareTo(o2.name);
}

// 做一个类
class Person implements Comparable<Person>// 要作出比较,那么就要使Person类能够实现比较,就用Comparable
{
String name;
int age;

Person(String name, int age) {
this.name = name;
this.age = age;
}

void print() {
System.out.println(String.format("姓名  =%s,年龄 = %d", name, age));
}

@Override // 重写一个方法来进行比较
public int compareTo(Person o) {
if (this.age > o.age)// 这里定义的比较方法是利用age来进行比较,也可以自己定义用name来比较
{ // 根据java.API文件查出Comparable有这样的规则
// 值得注意的是Comparable在java.lang(language) 的包里面
return 1;
} else if (this.age < o.age) {
return -1;
} else {
return 0;
}
}

}

}// 方法

class Dog {
String name;
int weight;

Dog(String name, int weight) {
this.name = name;
this.weight = weight;

}

@Override //
public String toString() {

return "name=" + name + ", weight=" + weight;

}

}
自定义了两个class,然后在TreesSet里面添加自定义对象

输出结果为:name=HuaHua, weight=6

name=MaoMao, weight=5

name=NiuNiu, weight=10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: