Set集合
//Set (无序的) list 是有序的
//set 不能重复的
//HashSet treeSet
HashSet set = new HashSet(); //创建一个hashset对象
set.add("1"); //添加元素
set.add("2");
System.out.println(set);
//遍历set
for (Object object : set) {
System.out.println(object);
}
//是否包含
boolean iscon = set.contains("1");
System.out.println(iscon);
//删除 (不可以通过下标删除,只能通过传入的元素去删除)
set.remove("1");
HashSet
//重复元素的判断机制
//只要obj == obj1 认为 obj和obj1 是相同的元素
//equal 与hashcode 同时相等的时候,认为相同的元素
public static void main(String[] args) {
//hashSet 基于HashMap实现的,利用了HashMap键不能重复的特点
HashSet set = new HashSet();
Person person = new Person();
person.name = "张三";
Person person2 = new Person();
person2.name = "李四";
Person person3 = new Person();
person3.name = "王五";
Person person4 = new Person();
person4.name = "张三";
System.out.println(person.equals(person4));
set.add(person);
set.add(person2);
set.add(person3);
set.add(person4);
System.out.println(set);
}
}
class Person implements Comparable{
String name;
int age;
//重写的方法都是继承于object
@Override
public String toString() { //自定义输出
return "name = " + this.name + "age = " + this.age;
}
@Override
public boolean equals(Object obj) {
//如果类型不相等,返回false
if (!(obj instanceof Person)) {
return false;
}
//如果名字相同,返回true
if (((Person)obj).name.equals(this.name)) {
return true;
}
//如果名字不相同 返回false
return false;
}
//hascode
@Override
public int hashCode() { //计算一个对象的哈希值
return this.name.hashCode();
}
//实现comparable接口方法
@Override
public int compareTo(Object o) {
if (o instanceof Person) {
Person p = (Person)o;
if (this.age > p.age) {
return 1;
}else if (this.age == p.age) {
return 0;
}else {
return -1;
}
}
return 0;
}
}
TreeSet
//Set--- TreeSet 可以排序 1,自然排序 2,自定义排序
//TreeSet可以对数字和字符串进行排序,
//因为实现了Comparable接口
//如果在comparable接口中返回0 认为是同一个元素
public static void main(String[] args) {
TreeSet set = new TreeSet();
//放的是interger类型
// set.add("2");
// set.add("3");
// set.add("1");
// set.add("4");
Person p1 = new Person();
p1.age = 12;
p1.name = "张三";
Person p2 = new Person();
p2.age = 13;
p2.name = "张四";
Person p3 = new Person();
p3.age = 10;
p3.name = "张无";
Person p4 = new Person();
p4.age = 14;
p4.name = "张六";
set.add(p1);
set.add(p2);
set.add(p3);
set.add(p4);
System.out.println(set);
}
}