package day14H;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
/**
* 任务描述
定义一个老鼠类,该类有属性名字,爱好,年龄。创建老鼠对象,并初始化,然后把这些老鼠对象添加到一个集合中。
任务要求
1. 使用集合添加2只老鼠,:淘淘和杰瑞
2. 按照年龄升序排序;(比较器Comparable)
3. 再添加一只杰瑞老鼠,不允许此老鼠添加入集合,因为在老鼠王国不允许同名的老鼠
,老鼠名相同了会被认为是同一只老鼠。(重写hashCode和equals)
4. 使用Iterator显示所有老鼠信息;
5. 删除老鼠杰瑞
6. 输出集合中有多少只老鼠
知识点:Set接口。
* */
public class H2 {
public static void main(String[] args) {
Mouse m1=new Mouse("淘淘", "捡垃圾", 20);
Mouse m2=new Mouse("杰瑞", "跳舞", 12);
Mouse m3=new Mouse("杰瑞", "跳舞1", 14);
Mouse m4=new Mouse("杰瑞2", "跳舞1", 19);
Set<Mouse> set=new HashSet<>();
set.add(m1);
set.add(m2);
set.add(m3);
set.add(m4);
System.out.println(m2.hashCode());
System.out.println(m3.hashCode());
//用Collections提供的sort方法进行排序 只能对list生效
List<Mouse> list=new ArrayList<>(set);
Collections.sort(list,(s1,s2)->{return s1.getAge()-s2.getAge();});
set=new HashSet<>(list);//再把list转成hashset
set.forEach(System.out::println);
}
}
class Mouse{
private String name;
private String hobby;
private int age;
public Mouse(String name, String hobby, int age) {
this.name = name;
this.hobby = hobby;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return name+"老鼠的年龄:"+age+" 爱好是"+hobby;
}
@Override
public int hashCode() {
return name.hashCode();//返回有识别度的哈希地址
}
@Override
public boolean equals(Object o) {
Mouse m=(Mouse)o;
if(name.equals(m.getName())) {
return true;
}
else {
return false;
}
}
}