八、java集合类
与数组的区别:
数组的长度是固定的,集合的长度是可变的。数组用来存放基本类型的数据,集合用来存放对象的引用。
1、集合类接口的常用方法
COllection接口是层次结构中的根接口,该接口提供了添加和删除元素、管理数据的方法。
(1)List接口
add()、addAll()、remove()、get()、indexOf()、lastINdexOf()、subList()、set()、listIterator()
(2)Set接口
add()、addAll()、remove()、retainAll()、removeAll()、clear()、iterator()、size()、isEmpty()
(3)Map接口(键值对)
一个映射不能包含重复的键,每个键最多只能映射到一个值。
put()、containskey()、containsValue()、get()、keySet()、values()
2、集合接口的实现类
(1)List接口
1)ArrayList类
可变的数组,允许所有元素,包括null。
优点:快速访问元素。
缺点:插入、修改和删除对象较慢。
语法:List<String> list = new ArrayList<String>;
2)LinkedList类
链表结构保存对象。
优点:插入和删除较快。
缺点:随机访问较慢。
语法:List<String> list = new LinkedList<String>();
(2)Set接口
1)HashSet(无序的)
语法:Set<String> collSet = new HashSet<String>();
2)TreeSet
语法:Set<String> collSet2 = new TreeSet<String>();
(3)Map接口
1)HashMap类
基于哈希表的Map接口的实现,允许使用null。
优点:插入、删除效率高
缺点:无序
2)TreeMap类
不允许键对象是null
优点:有序
缺点:插入删除效率低
3、迭代器Iterator
方法:hasNext()、next()、remove()
for(Iterator<Integer> it = list.iterator();it.hasNext()){...}