数组和集合区别
- 数组长度是固定的,不可变,集合长度可变
- 数组可存储基本数据类型,也可存储引用数据类型,集合只能存储引用数据类型
List和Set区别
- List: 有序,有索引,可重复
- Set :无序,无索引,不能重复
List三个子类的特点
- ArrayList 和 Vector底层数据结构是数组,查询快,增删慢
- LinkedList 底层数据结构是链表,查询慢,增删快
- ArrayList,LinkedList都是线程不安全的,效率高,Vector是线程安全的,效率低
- Vector基本上不用,查询多用ArrayList,增删多用LinkedList
Iterator并发修改异常解决方案
- 异常复现场景:迭代器遍历过程中,调用集合的方法修改了集合
- 解决方案:使用ListIterator,并且使用ListIterator本身的特有方法修改集合
集合中迭代方式删除元素
- 普通for循环,可以删除,但是索引要--
- 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
注意:增强for循环不能删除,只能遍历
可变参数
- 格式
- 修饰符 返回值类型 方法名(数据类型… 变量名){}
- 注意事项:
- 这里的变量其实是一个数组
- 如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个