集合:集合是java中提供的一种容器,可以用来存储多个数据。
数组:数组是java中提供的一种容器,可以用来存储多个数据。
集合和数组的区别:
数组长度不可变,集合长度可变
数组存储元素类型一致,集合中的元素可以不一致,但是建议一致
定义数组只能是基本数据类型, 定义集合只能是引用数据类型
单列集合:Collection : 单列集合根接口 包: java.util this: Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合
部分常用方法 - public boolean add(E e): 把给定的对象添加到当前集合中 。
- public void clear() :清空集合中所有的元素。
- public boolean remove(E e): 把给定的对象在当前集合中删除。
- public boolean contains(E e): 判断当前集合中是否包含给定的对象。
- public boolean isEmpty(): 判断当前集合是否为空。 判断集合中是否有元素
- public int size(): 返回集合中元素的个数。
- public Object[] toArray(): 把集合中的元素,存储到数组中。
- public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合中的元素的。
(接口)
~List: 特点_元素存取有序,有索引 ,元素可以重复 可以使用普通for循环和迭代器遍历 包:java.util.List
public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。
public E get(int index) :返回集合中指定位置的元素。
public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
实现集合类:
使用最普遍 →→→ ArrayList 数组结构.元素增删慢,查找快 包:java.util.ArrayList
LinkedList 链表结构.查找慢.增删快 包:java.util.LinkedList
public void addFirst(E e) :将指定元素插入此列表的开头。
部分方法 public void addLast(E e) :将指定元素添加到此列表的结尾。
public E getFirst() :返回此列表的第一个元素。
public E getLast() :返回此列表的最后一个元素
public E removeFirst() :移除并返回此列表的第一个元素。
public E removeLast() :移除并返回此列表的最后一个元素。
public E pop() :从此列表所表示的堆栈处弹出一个元素。
public void push(E e) :将元素推入此列表所表示的堆栈。
public boolean isEmpty() :如果列表不包含元素,则返回true
vector
(接口)
~SET:特点_元素无序,无索引,不可重复 包:java.util.Set
tips:Set集合取出元素的方式可以采用:迭代器、增强for (不能使用普通for循环遍历)
实现集合类:
HashSet : 数据结构:哈希表(哈希表是由数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的) 包java.util.HashSet
this:HashSet 根据哈希值查找数据,拥有良好存取和查找性能...保证元素唯一性 的方式依赖于:hashCode(查询哈希值) 与 equals 方法
HashSet的子类LinkedHashSet : 数据结构:链表+哈希表 (特点:有序,无索引,不能重复) 包:java.util.LinkedHashSet
TreeSet
区分:
Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。
Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的 值
双列集合:Map : 双列集合根接口 包:java.util.Map 特点:
public V put(K key, V value) : 把指定的键与指定的值添加到Map集合中。
public V remove(Object key) : 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
public Set keySet() : 获取Map集合中所有的键,存储到Set集合中。
public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。
HashMap 集合类 推荐
LinkedHashMap 集合类
TreeMap 集合类