原文章:Java中的集合_java 集合-CSDN博客
集合三大接口
集合两个父接口:Collection、Map
Collection两个子接口:List、set
List两个常见实现类:ArrayList、LinkedList
Set两个常见实现类:HashSet、TreeSet
Map两个常见实现类:HashMap、HashTable
集合特点:
List 有序,可重复
Set 无序、不可重复
Collection 无序、可重复
Map 无序、不可重复、存放键值对
List接口
ArrayList(底层数组):搜索效率高,修改效率低
LinkedList(底层双向链表):搜索效率低,修改效率高
常用方法:
(1)add(o)方法,在末尾添加一个对象
(2)add(int index,o),在指定索引位插入一个对象
(3)set(int index,o),将指定索引位
(4)get(int index),返回指定索引位的对象
(5)remove(int index),删除指定索引位的对象并返回它
(6)remove(o),删除第一个指定的对象,返回值为布尔类型,表示是否删除成功
(7)contains(o),判断是否存在指定的对象,返回值为布尔类型
(8)size(),返回List包含的元素个数(int类型)
(9)indexOf(o),返回该元素的第一个索引值,没有返回-1
(10)clear(),清空List
Linked额外方法:
主要是在开头和末尾添加值,以及删除开头和末尾的值的方法。
addFirst(o),addLast(o),removeFirst(),removeLast()
Set接口
HashSet(底层HashMap)常用方法:
(1)add(o),添加一个对象,如果此操作改变了集合,会返回true,否则返回false
(2)其他的方法如remove(o),clear(),size(),contains()都与List的方法一样
Map接口
HashMap(底层红黑树)常用方法:
(1)put(key,value),添加一个键值对,返回null,key和value都是Object,如果已经存在key,则更改value为新的值并将其返回
(2)get(key),返回key对应的value,如果没有,返回null
(3)remove(key),删除相应的键值对,返回删除掉的value,如果没有返回null
(4)containsKey(key),containsValue(value),返回值为boolean类型
(5)size(),返回包含的键值对数量
(6)keySet(),返回包含所有key值的Set集合
(7)values(),返回包含所有value值的Collection集合
遍历集合
Iterator接口(迭代器)、for循环(只能对有序的集合进行遍历)、foreach循环(底层是迭代器)
方法:
hasNext()方法是判断集合中是否存在下一个元素,返回值为布尔值类型
next()方法是返回下一个元素的值
一般采用while循环的方式,当hasNext()为true时,将下一个元素的值返回出来,如果为false则退出循环。