集合框架中的接口

Java集合框架为不同类型的集合定义了大量接口

集合有两个基本接口:CollectionMap

可以用以下方法在集合中插入元素:boolean add(E element)

不过由于映射包含键/值对,所以要用put方法来插入:V put(K key, V value)

要从集合中读取元素,可以用迭代器访问元素。
从映射中读取值则要使用get方法:V get(K key)


List是一个有序集合

元素会增加到容器中的特定位置。

可以采用两种方式访问元素:

  • 使用迭代器访问(必须顺序地访问元素)
  • 使用一个整数索引来访问(这种方法称为随机访问,因为这样可以按任意顺序访问元素)

List接口定义了多个用于随机访问的方法:

void add(int index, E element) // 在给定位置添加一个元素,如果没定义Index则插入到末尾

void remove(int index) // 删除并返回给定位置的元素

E get(int index) // 获取给定位置的元素

E set(int index, E element) // 用一个新元素替换给定位置的元素,并返回原来那个元素

ListIterator接口是Iterator的一个子接口。它定义了一个方法用于在迭代器位置前面增加一个元素:void add(E element)

有两种有序集合,它们的性能开销有很大差异。
由数组支持的有序集合可以快速地随机访问,因此适合使用List方法并提供一个整数索引来访问。
与之不同,链表尽管也是有序的,但是随机访问很慢,所以最好使用迭代器来遍历。

为了避免对链表完成随机访问操作,Java1.4引入了一个标记接口RandomAccess。
这个接口不包含任何方法,不过可以用它来测试一个特定的集合是否支持高效的随机访问


Set接口等同于Collection接口,不过其方法的行为有更严谨的定义。
集(set)的add方法不允许增加重复的元素
要适当地定义集的equals方法:只要两个集包含同样的元素就认为它们是相等的,而不要求这些元素有同样的顺序。
hashCode方法的定义要保证包含相同元素的两个集会得到相同的散列码。

posted @ 2021-02-01 16:58  张三丰学Java  阅读(163)  评论(0编辑  收藏  举报