java集合是一个工具类,需要到Utils包,可以存储任意数量的具有共同属性的对象。
集合框架的体系结构为:
1、List(列表)
(1)List是元素有序且可以重复的集合,成为序列
(2)List可以精确的控制每个元素的插入位置,或删除掉某个位置的元素
(3)List的两个主要实现类是ArrayList 和 LinkedList
1.1 ArrayList
(1)ArrayList底层是由数组实现的。
(2)动态增长,以满足应用程序的需求
(3)在列表尾部插入或者删除数据非常有效,但在中间需大量数组复制,较麻烦。
(4)更适合查找和更新元素。
(5)ArrayList中的元素可以为null
ArrayList的常用方法
1) list.add() //新增
2) list.add(index,value) //指定索引插入
3) list.size() //返回长度
4) list.get(index) //根据索引查询值
5) list.remove(index) //根据索引进行删除
6) list.remove(value) //直接根据元素值进行删除,因为可重复,所以可能会删除了多个
7) list.contains(value) //判断序列中是否包含value
8) list.set(index,value) //根据索引来修改元素值
9) list.indexOf(value) //返回第一个出现value的索引,和字符串中的indexOf方法一样
10)list.lastIndexOf(value) //返回最后一次出现value的索引,和字符串中的lastIndexOf一样
1.2 LinkedList
3、Set(集)
Set是元素无序并且不可以重复的集合,被称为集。
3.1 HashSet
(1)HashSet是Set的一个重要实现类,成为哈希集。
(2)HashSet中元素无序并且不可以重复,因此在某些不需要重复数据插入时比较好用。
(3)HashSet中只允许一个null元素,因为它不允许重复。
(4)具有良好的存取和查询功能。
HashSet常用方法
1)boolean add(E e) //新增
2)boolean addAll() //
3)void clear() //清空
4)boolean contains() //判断是否包含
5)boolean equals(Object o) //判断是否一致
6)int hashCode() //返回哈希值
7)Iterator<E> iterator() //迭代器方法
4、Map接口
(1)Map中的数据是以键值对(Key-Value)的形式存储的
(2)Key-Value以Entry类型的对象实例存在
(3)可以通过Key值快快速查找Value
(4)一个映射(Key-Value)不能包含重复键(Key),Value可以
(5)每个键最多只能映射到一个值
4.1 HashMap
(1)基于哈希表的Map接口的实现
(2)允许使用null值和null键,(但只能由一个null键,因为不允许重复)
(3)Key值不允许重复
(4)HashMap中Entry对象是无序排列的。
HashMap常用方法
1)Set<Map.Entry<k,v>> entrySet() //返回键值对的所有信息
2) void get(Object key) //通过key值来取得想对应的值
3) Set(k) keySet() //取出所有key的值
4) void put(K key,V value) //将元素添加到hashMap中
5) void remove(Object key) //根据key来移除元素
6) Collection<v> values() //返回Values值的集合
7) void clear() //清空
8) boolean isEmpty() //判断hashmap是否为空
9) int size() //返回hashMap长度
4.2 TreeMap
TreeMap的顺序是自然顺序,如(1,2,3…10),也可以指定比较函数,但不是插入的顺序。
4.3 LinkedHashMap
它内部有一个链表,保持插入的顺序,迭代的时候,也是按照插入的顺序进行迭代,而且迭代比HashMap快