1、集合类型
java中集合类型有这样几种:list、set、map,每个类型下面分别对应多个实现类。
list:有序集合,有实现类 ArrayList、LinkedList和 Vector,常用的是第一个,list的特点就是,存进去的数据,顺序不会改变,按照什么顺序进去的,再集合中就是按照什么顺序进行排列;
set:无序集合,会根据排序算法,将存入的数据进行重新排序。对应的实现类有HashSet、TreeSet等;
map:双列集合(前两个是单列集合),也是有序的,由“键”与“值”组成,“键”是唯一的,值可以重复。对应的实现类有HashMap、TreeMap、Hashtable以及LinkedHashMap等。
2、list集合的遍历与数据删除
初始数据:
@Test
public void forList(){
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
list.add("eee");
list.add("fff");
list.add("ggg");
- for循环
for (int i = 0; i < list.size(); i++) {
list.remove(i);
i--;
System.out.println(list.size());;
}
- forEach(forEach不支持删除数据,因为对forEach遍历出的集合数据进行操作,不会影响到原来的集合)
list.forEach(System.out::println);
- 迭代器 iterator
// 获取迭代器对象
Iterator<String> iterator = list.iterator();
// hasNext():返回boolean值,判断迭代器对象中是否还有下一条数据
while (iterator.hasNext()){
// next() 返回list的泛型类型数据,并将迭代器中游标向后移动一位
iterator.next();
// remove() 删除当前游标指定的数据
iterator.remove();
}
三种集合,其实有很多东西都是差不多都,比如map集合可以使用keySet()方法获取到由“键”组成的set集合,通过values()方法获取到由“值”组成的Collection集合(Collection是单列集合,也是list和set都继承的接口)。
list、map、set的继承关系参考下图: