一、数据结构
1、栈
特点:先进后出
2、队列
特点:先进先出
3、数组
特点:
1. 元素有序,存储在一段连续的内存空间
2. 查找元素快:因为通过索引可以快速访问指定位置的元素
4、链表
特点:
1. 链表是一组不必连续的内存结构
2. 由数据和节点组成
3. 插入删除元素快:因为只需修改节点指向的下一个元素
5、红黑树
特点:
速度特别快
6、哈希表
二、Collection集合
三、Map集合
四、Comparable和Comparator
1、Comparable
使用Comparable的compareTo方法进行对象比较,必须实现Comparable接口。
class Student implements Comparable<Student> {
private String name;
private int age;
//构造器,getter,setter
@Override
public int compareTo(Student o) {
return this.age - o.age;
}
}
2、Comparator
使用Comparator的compare方法进行比较,不需要实现接口
// 按年龄升序,按姓名降序
Collections.sort(list, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
if (o1.getAge() - o2.getAge() != 0) {
return o1.getAge() - o2.getAge();
} else {
return o2.getName().compareTo(o1.getName());
}
}
});