1.集合的体系结构以及Collection集合 1.1 集合的体系结构: 单列集合:Collection接口 List接口:元素可重复 ArrayList类、LinkedList类 Set接口:元素不可以重复 HashSet类、TreeSet类 双列集合:Map接口 HashMap类 1.2 Collection集合: 创建对象:Collection<String> c=new ArrayList(); 常用方法:所有单列集合通用的方法。 boolean add(E e):添加元素,返回值表示是否添加成功,使用ArrayList集合返回的是固定值true。 boolean remove(Object o):从集合中移除指定的元素,返回值表示是否移除成功 void clear():清空集合中的元素 boolean contains(Object o):判断集合中是否存在指定的元素,true表示包含 boolean isEmpty():判断集合是否为空,true表示为空 int size():集合的长度,也就是集合中元素的个数 1.3 Collection集合遍历-迭代器 //1、通过集合的iterator方法获取迭代器对象。 Iterator<String> it = coll.iterator(); //2、循环判断是否有下一个元素。it.hasNext()方法 while(it.hasNext()){ //3、如果有下一个元素,那么就获取下一个元素。it.next()方法 String s = it.next(); System.out.println(s); } 2.list集合的遍历以及数据结构 List集合的特点: 1、有序:存和取得顺序一致。 2、元素可重复 3、有索引,可以使用fori的方式遍历。 List集合常用方法: void add(int index,E element):在此集合中的指定位置插入指定的元素 E remove(int index):删除指定索引处的元素,返回被删除的元素 E set(int index,E element):修改指定索引处的元素,返回被修改的元素 E get(int index):返回指定索引处的元素 总结:在开发中我们一般是使用List集合而不是使用Collection集合。 方法分类: 增/添加: boolean add(E e):在集合的末尾添加元素e void add(int index, E e):在index索引出添加元素e 删/移除: boolean remove(E e):根据元素e删除 E remove(int index):根据索引index删除元素 改/设置: E set(int index,E element):将索引index处的元素重新设置成element,返回值是被修改的元素。 查/获取: E get(int index):根据索引获取元素 int size():获取集合的长度 遍历方式: 1、首选:fori遍历,只能针对有索引的集合遍历。 2、迭代器iterator,但是不太推荐,麻烦。 迭代器并发修改异常:ConcurrentModificationException, 原因:集合中有一个记录修改(添加和移除)次数的变量modCount。使用集合添加元素和删除元素modCount都会++,也叫做实际修改次数++; iterator迭代器中也有一个期望修改次数的变量expectedModCount,默认值等于集合的modCount;每当我们调用迭代器的next() 方法时,内部都会将expectedModCount和modCount进行比较,如果不一样就会抛出ConcurrentModificationException并发 修改异常。 ps:集合的长度发生了变化,集合中的modCount就会++; 解决办法: 第一种:使用fori遍历代替迭代器的方式遍历。 第二种:不使用Itr迭代器,使用他的子类ListItr来遍历集合,获取的方式为集合的listIterator(); 但是添加元素和删除元素要使用迭代器中提供的add方法和remove() 增强for循环:第三种遍历方式,底层使用的是迭代器,相当于迭代器的一种简化遍历方式。 语法:用于遍历集合和数组 for(集合/数组元素类型 变量名:集合/数组对象){ //循环体,变量保存的就是每次遍历的结果。 } 快捷键:集合/数组对象.for+回车 3.ArrayList集合和LinkedList集合 栈结构:先进后出。例如:弹夹 队列结构:先进显出。例如:打饭排队。 数组结构:查询快,增删慢,ArrayList底层是数组结构 链表结构:查询慢,增删快,LinkedList底层是链表接结构
Java学习之随堂笔记系列——day14
最新推荐文章于 2025-04-11 00:18:51 发布