常见接口和实现类

  • 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()&nbsp;&nbsp;对集合进行升序排列
  • max()&nbsp;&nbsp;求集合中的最大值
  • min()&nbsp;&nbsp;求集合中的最小值
  • binarySearch()&nbsp;&nbsp;查找指定对象在集合中的下标位置【查找之前也需要先排序】

注意:使用Collections类给对象集合进行排序的时候,需要将对象所属的类实现Comparable接口,并从写它的compareTo()方法