集合
Collection 集合常用方法
方法名 | 说明 |
---|---|
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 从集合中移出指定的元素 |
void clear() | 清空集合中的元素 |
boolean contains(Object o) | 判断集合中是否存在指定的元素 |
boolean isEmpty() | 判断集合是否为空 |
int size(); | 集合的长度, 也就是集合中元素的个数 |
List 集合概述和特点
概述: 有序集合(也称为序列), 用户可以精确控制列表中每个元素的插入位置。 用户可以通过整数索引访问元素, 并搜索列表中的元素; 与set不同, 列表通常允许重复的元素
特点: (有序)存储和取出的元素顺序一致; (可重复)存储的元素可以重复.
方法名 | 说明 |
---|---|
void add(int index, E element) | 在此集合中的指定位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素, 返回被删除的元素 |
E set(int index, E element) | 修改指定索引处的元素, 返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
List的三种循环方式
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("java");
// Iterator 迭代器
Iterator<String> it = list.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s)
}
// for 循环
for (int i=0; i<list.size(); i++){
String s = list.get(i);
System.out.println(s);
}
// 增强for循环, 底层是Iterator的实现
for (String s: list){
System.out.println(s);
}
数据结构
LinkedList集合的特有功能
方法名 | 说明 |
---|---|
public void addFirst(E e) | 在该列表开头插入指定的元素 |
public void addLast(E e) | 将指定的元素追加到此列表的末尾 |
public E getFirst() | 返回此列表的第一个元素 |
public E getLast() | 返回此列表的最后一个元素 |
public E removeFirst() | 从此列表中删除并返回第一个元素 |
public E removeLast() | 从此列表中删除并返回最后一个元素 |
HashSet 集合概述和特点
- 底层数据结构是哈希表
- 对集合的迭代顺序不作任何保证, 也就是说不保证存储和取出的元素顺序一致
- 没有带索引的方法,所以不能使用普通for循环遍历
- 由于是Set集合, 所以是不包含重复元素的集合
用TreeSet集合存储自定义对象, 无参构造方法使用的是自然排序对元素进行排序的
自然排序, 就是让元素所属的类实现Comparable接口, 重写compareTo(T o)方法
重写方法时, 一定要注意排序规则必须按照要求的主要条件和次要条件来写
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2){
//比较两个对象中的参数,按照主要条件,次要条件来比较
//返回int类型。 如果大于0, 则s2大于s1
return 0;
}
}