集合是什么:集合是java提供的一种容器,可以用来存储多种数据
那数组也是容器,两者有什么区别呢?
1 这是因为数组在定义的时候,已经固定了长度,但集合长度是可变的
2 数组定义时同时也定义了存储的数据类型,数组中的数据的数据类型是相同的,可以存基本数据类型。但集合存储的是对象,对象的数据类型可以不同。
集合有哪些:
集合分为单列集合和双列集合,单列集合存储的是一个元素,双列集合存储的是一对元素。
单列集合的根接口为collection
collection有两个重要的子接口,分别为list(元素有序,可重复)和set(元素无序不可重复),list的主要实现类有 ArrayList 和 LinkedList Set 接口 的主要实现类有 java.util.HashSet 和 java.util.TreeSet 。
关系如下图
Collection是所有单列集合的父接口,因此在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() : 把集合中的元素,存储到数组中。
Map 集合常用子类有
HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需 要重写键的hashCode()方法、equals()方法。
LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链 表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。
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集合)。
~~