TreeSet的使用
package com.etc.chapater0_1;
import java.util.Iterator;
import java.util.TreeSet;
public class Demo04 {
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<>();
//添加
treeSet.add("a");
treeSet.add("c");
treeSet.add("d");
treeSet.add("b");
System.out.println(treeSet.size());
System.out.println(treeSet);
//删除
// treeSet.remove("a");
// System.out.println(treeSet.size());
//遍历
//增强for
for (String s:treeSet
) {
System.out.println(s);
}
//使用迭代器
Iterator<String> iterator = treeSet.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//判断
System.out.println(treeSet.contains("a"));
}
}
TreeSet的使用(2)
package com.etc.chapater0_1;
public class Person implements Comparable<Person>{
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public int hashCode() {
int n1 = this.name.hashCode();
int n2 = this.age;
return n1+n2;
}
@Override
public boolean equals(Object obj) {
if (this==obj){
return true;
}
if (obj==null){
return true;
}
if (obj instanceof Person){
Person p = (Person) obj;
if (this.name.equals(p.getName())&&this.age==p.getAge()){
return true;
}
}
return false;
}
@Override
public int compareTo(Person o) {
int n1 = this.getName().compareTo(o.getName());
int n2 = this.getAge()-o.getAge();
return n1==0?n2:n1;
}
}
package com.etc.chapater0_1;
import java.util.Iterator;
import java.util.TreeSet;
/**
* 使用TreeSet保存数据
* 储存结构:红黑树
* 要求:元素必须要实现Comparable接口 ,compareTo()方法返回值为0 认为是重复元素
*/
public class Demo05 {
public static void main(String[] args) {
TreeSet<Person> treeSet = new TreeSet<>();
Person p1 = new Person("liudehua",22);
Person p2 = new Person("linzhilin",21);
Person p3 = new Person("liaochaowei",25);
Person p4 = new Person("lixiaolong",23);
//添加
treeSet.add(p1);
treeSet.add(p2);
treeSet.add(p3);
treeSet.add(p4);
System.out.println(treeSet.size());
System.out.println(treeSet.toString());
//删除
// treeSet.remove(p1);
// treeSet.remove(new Person("linzhilin",21));
// System.out.println(treeSet.size());
//遍历
System.out.println("---------使用增强for--------");
for (Person p:treeSet
) {
System.out.println(p.toString());
}
System.out.println("-----------使用迭代器-----------------");
Iterator<Person> iterator = treeSet.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//判断
System.out.println(treeSet.contains(new Person("lixiaolong",23)));
System.out.println(treeSet.isEmpty());
}
}