常见接口和实现类
- Collection 是父接口它的子接口是List、set
- List接口的实现类是ArrayList和LinkedList
- Set接口的实现类是HashSet和TreeSet
ArrayList的常用方法
- .add(Object obg) 将对象添加到列表的末尾,其实元素的下标从0开始
- .get(int index) 根据索引从列表中取出对象
- .size() 获取列表的长度【列表中对象的个数】
- .add(int index, Object obg) 将对象添加到列表指定的索引位置,注意索引位置不许在0到列表长度数之间【否则会出现下标越界】
- .contains(Object obg) 用来判断列表中是否存在该对象
- .remove(Object obg) 用来删除列表中指定的对象
- .remove(int index) 用来删除列表中指定位置的对象
- .Collection借口常用通用方法还有:clear()清楚集合、isEmpty()判断是否为空、iterator()获取集合迭代器、 toArray()集合转化成数组
特点:
- 相当于长度可变的数组
- 对应添加到列表的对象的遍历和查询效率高,但是插入和删除的效率比较低
LinkedList的常用方法
- .addFirst() 在列表的第一个位置插入对象
- .addLast() 在列表的最后一个位置插入对象
- .getFirst() 取出列表中的第一个位置的对象
- .getLast() 取出列表中的最后一个位置的对象
- .removeFirst() 删除列表中的第一个位置的对象
- .remoceLast() 删除列表中的最后一个位置的对象
特点
- 对列表中的对象的插入和删除效率很高
Set的使用
- Set本身是一个借口,不能实例化。HashSet 和 TreeSet 是Set借口的实现类
- Set中存放唯一、无序的对象,而List中存放的实不唯一有序的对象
- 访问Set里的对象需要使用迭代器,可以通过集合借口的iterator()方法获取迭代器
迭代器
- 可以通过Collection的iterator()方法获取迭代器对象
- .hasNext()方法判断是否有下一个可以访问的对象
- .next()方法可以从迭代器中取出下一个对象
关于对象放置到Set中去重复的方法
- 重写该对象所属类的hashCode()方法
- 重写该对象所属类的equals()方法
Map是一个接口
- Map是一个接口,HushMap是它的实现类
- put()方法 将键值对存入map中
- get()方法 通过键获取它在map中对应的值
- keySet()方法 将Map中所有键组成的Set获取到
- values()方法 将Map中所有的值组成的集合获取到
- ContainKey()方法 判断Map中是否存在指定的键
- 获取Map中键值对可以通过foreach方法和迭代器取去访问
注意:key中必须存放唯一的对象,value中可以存放重复对象
泛型的使用
- 将对象所属的类型指定到其他的类或者方法上,避免类型转换的异常,确保对象使用的安全性
- 将类型放到尖括号<>中
List<Staff> list = new ArrayList<Staff>();
- 泛型的尖括号<>中不能放基本数据类型
- 泛型其实就是将类型参数化使用的一种技术,可以把类型当成参数一样传入
Collections类的常用方法
- 它是用来对集合进行操作
- sort() 对集合进行升序排列
- max() 求集合中的最大值
- min() 求集合中的最小值
- binarySearch() 查找指定对象在集合中的下标位置【查找之前也需要先排序】
注意:使用Collections类给对象集合进行排序的时候,需要将对象所属的类实现Comparable接口,并从写它的compareTo()方法