java容器基础

总结一下学过的java容器知识。

一、java容器框架

 由于之前学习的java容器类比较混乱,先简单的整理一下java集合框架。

首先,像这种图,网上到处都是,因为这个也算比较准确吧,我也懒得自己画了,因为我觉得这个目前对我来说不重要,这么多东西,并不是都用得到,其实日常写代码就只用到过几种,像最常用的ArrayList、HashMap等,在这里我只总结一些最基础的、常用的,希望对java初学者有所帮助。常用的java容器主要分为两大类:用于单值存储的Collection和用于双值存储的Map。这两个java容器类的最基础接口,那么我们主要用到的他们的哪些实现呢?

二、Collection接口

1,Collection接口是java集合类的基础接口。

collection主要方法:

  1. boolean add(Object o)添加对象到集合
  2. boolean remove(Object o)删除指定的对象
  3. int size()返回当前集合中元素的数量
  4. boolean contains(Object o)查找集合中是否有指定的对象
  5. boolean isEmpty()判断集合是否为空
  6. Iterator iterator()返回一个迭代器
  7. void clear()删除集合中所有元素
  8. boolean containsAll(Collection c)查找集合中是否有集合c中的元素
  9. boolean addAll(Collection c)将集合c中所有的元素添加给该集合
  10. void removeAll(Collection c)从集合中删除c集合中也有的元素
  11. void retainAll(Collection c)从集合中删除集合c中不包含的元素

前7个方法都是比较常用的,Collection接口又有常用的两个子接口,List接口和Set接口。

2,List接口中的元素是有序可重复的。

List接口有三个实现类:ArrayList,LinkList,Vector。

扫描二维码关注公众号,回复: 6548449 查看本文章

ArrayList是基于数组接口的集合类,所以数据的查询比较快,LinkList底层是双向链表实现的,所以增删比较快。Vector和特们的不同之处是Vector是线程安全的,效率也比较低,不太常用,在java的集合类中有一个很奇怪的现象,就是往往很多线程安全的东西,都不会经常用到,人们更喜欢把线程不安全的东西用一些特殊的方法使他变得线程安全,具体什么原因,在网上也查不到,还是要加紧学习啊!

3,Set接口中的元素是不可重复的。

Set接口有两个常用的实现类:HashSet,TreeSet。

HashSet是用的最多的,TreeSet用的则比较少,前者存储的元素是无序的(基于哈希表实现),后者存储的元素是有序的(基于二叉树)。两者都是线程不安全的。

三、Map接口

1,Map接口是java双值存储的最基础接口

Map主要方法:

2,HashMap

3,HashTable

4,TreeMap

四、补充

1,重复问题

2,排序问题

3,java数据接口

https://study.163.com/course/courseMain.htm?courseId=1006190095

五、总结

实现类/特性 线程安全 存取速度 数据结构 使用频率 迭代方法
ArrayList          
LinkList          
Vector          
HashSet          
TreeSet          
HashMap          
HashTable          

猜你喜欢

转载自www.cnblogs.com/m1996/p/11051215.html