集合
来源:互联网 发布:芒果tv php视频解析 编辑:程序博客网 时间:2024/05/22 10:37
集合是java提供的一种容器,可以用来存储多个数据。
数组和集合都可以用来存储数据,有什么区别呢?
数组的长度是固定的,集合的长度可变
集合中存储的元素必须是引用类型
集合的创建方式:
Collection<元素类型> 变量名=new 子类<元素类型>()
也可以不指定类型Collection 变量名=new 子类()
Iterator迭代器
因为Collection实现子类有不同的存储方式,为了可以获取这些元素,用迭代器实现了这一特性
对于List和Set接口有共性,也有各自的特性。共性就是Collection中的那些方法啦
List 存取是有序、元素是可重复、有索引(可以根据index获取值如Arraylist可以根据通过for循环进行遍历获取每个元素 get(index))
ArrayList:是数组实现,增删慢,查询快,线程不安全,效率高。(像数组存储一样ArrayList也是顺序存储,在数据结构中我们知道数组式存储)
LinkedList:是链表实现,增删快,查询慢
Set 存储无序,元素不可重复,无索引
HashSet:是哈希表实现,存储无序 元素不可重复
TreeSet:是二叉树实现,从小到大排序、元素不可重复、无索引
Map体系
存储结构:
双列集合的根接口,存取无序、键不可重复、无索引
HashMap 底层是哈希表,存取无序、键不可重复、无索引,线程不安全,效率高。
|LinkedHashMap 存取有序,其他和Map一样
|Hashtable 底层是哈希表,存取无序、键不可重复、无索引,线程安全,效率低。
|TreeMap 底层是二叉树,排序、键不可重复、无索引。
定义方式
Map<K,V> map=NewHashMap<K,V>();
Map中存储的是键值对
对元素进行增删
Map.put<K,V>
Map.remove<k,v>
取出键
Map.keySet()
取出值
Map.get(Key); 通过键获取值Map和Collection
Map成为双列集合集合存取的是键值对,可以存取两个对象。
而Collection成为单列集合。只能存取一个对象,元素是孤立存在的,像集合中存取元素是一个一个的进行存放