1 Collection集合
迭代器
iterator常用操作
列表迭代器(可以在遍历的时候添加元素)
1.1 list
1.1.1Arraylist底层是数组,查询快增删慢
1.1.2Linkedlist 底层是链表,查询慢,增删快
普通和ArrayList方法一样
2.Set集合
object 有hashcode()函数,返回对象的哈希值
没重载时,每个对象的哈希函数是相同的,不同对象的哈希函数是不同的
2.1hashset集合(如果是自定义类,自定义类必须重写hashcode和equals方法)
2.1.1 hashset元素唯一性原理(如果是自定义类,自定义类必须重写hashcode和equals方法)
2.2LinkedHashSet集合特点(如果是自定义类,自定义类必须重写hashcode和equals方法)
2.3TreeSet
2.3.1自然排序Comparable的使用
按照年龄大小排序,如果年龄相同,按照姓名排序
main函数
TreeSet<Student> ts=new TreeSet<Student>();
Student s1=new Student(18,"dilireba");
Student s2=new Student(23,"maerzhaha");
Student s3=new Student(21,"gulinazha");
Student s4=new Student(18,"dilireba");
ts.add(s1);
ts.add(s2);
ts.add(s3);
ts.add(s4);
for(Student s:ts)
System.out.println(s);
student类CompareTo函数
public int compareTo(Student student) {
// return 1;//正数时,元素升序
// return -1;//负数时,元素降序
/*int nu=this.age-student.age;
return nu; 这样会按age升序排列,但name不一样的对象会被当成一个对象,不存储*/
int nu=this.age-student.age;
Boolean b;
if(nu==0)
return this.name.compareTo(student.name)>0?1:0;
return nu;
}
2.3.2比较器排序Comparator的使用
public static void main(String[] args) throws ScoreException {
TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
int num=s1.getAge()-s2.getAge();
if(num==0)
return s1.getName().compareTo(s2.getName());
return num;
}
});