大数据开发基础之JAVA基础集合一


前面我们讲的几篇文章类、对象、封装继承、多态、抽象类等都是关于JAVA 面向对象的使用,从昨天《异常》一章开始,就讲的是常见操作类的使用,所以今天这一章就来讲集合。其实在之前的大数据开发之java基础中,我们就有提到过这个词,但也只是简单提及,今天就来详解集合。

大数据开发基础之JAVA基础集合一

一、JAVA集合与JAVA数组的区别

这个可能也是许多初学者的想法,集合与数组到底有什么区别呢?我们之前的文章就有提到过数组也详细说了一维数组、二维数组的区别及基础知识,如果有忘记了的记得在我的主页里翻一翻,是上个月写得文章了。回过头来,我们来讲讲两者之间的区别,JAVA是一门面向对象的语言,就免不了处理对象,所以,为了方便操作,同时处理多个对象,我们就得把这些对象存储起来,而这时是存储多个对象的,就需要一个容器(集合)来装载。所以简单来说:集合就是JAVA给我们提供了工具方便我们去操作多个JAVA对象。

而数组呢?数组的功能也是保存对象,但是数组是需要在初始化时就制定数组长度,当我们对象超过这个数组长度时,就无法满足我们的需求,更不用说我们需要保存某个动态增长的数据了。

二、集合

集合类主要负责保存、装在其他数据,因此集合类也被叫做容器类,JAVA集合类存放在JAVA.UTIL包中,是一个用来存放对象的容器。

这里有几个点值得注意:

1、集合只能存放对象

2、集合存放的是多个对象的引用,而对象本身还是存放在对内存中

3、集合可以存放不同、不限数的数据类型

大数据开发基础之JAVA基础集合一

三、常用集合的分类:

Collection 接口的接口 对象的集合(单列集合)

List 接口:元素按进入先后有序保存,可重复

LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全

ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全

Vector 接口实现类 数组, 同步, 线程安全

Stack 是Vector类的实现类

Set 接口: 仅接收一次,不可重复,并做内部排序

HashSet 使用hash表(数组)存储元素

LinkedHashSet 链表维护元素的插入次序

TreeSet 底层实现为二叉树,元素排好序


Map 接口 键值对的集合 (双列集合)

Hashtable 接口实现类, 同步, 线程安全

HashMap 接口实现类 ,没有同步, 线程不安全-

LinkedHashMap 双向链表和哈希表实现

WeakHashMap

TreeMap 红黑树对所有的key进行排序

IdentifyHashMap

四、集合的方法

大数据开发基础之JAVA基础集合一

五、集合接口

1、collection接口,是最基本的集合接口,一个collection就代表了一组元素,JAVA不提供直接继承来自collection的类,只提供子接口,collection接口存储一组不唯一无序的对象。

2、list接口,它是一个有序collection,可以精确的控制每个元素插入,能够通过索引来查找list的元素,第一个元素索引为0且允许有相同的元素,list存储一组不唯一但有序的对象。

3、set接口,set与collection接口完全一样,但是set不能保存重复的元素,所以,set存储一组唯一且无序的对象。

4、sortedset接口,继承了set,保存有序的集合。

5、map接口,map接口存储一组键值对象,提供key(键)到value(值)的映射。

6、map.entry接口,是一map的内部接口,主要用于描述一个map中的元素。

7、sortedmap接口,也是继承于map,能让key保持在升序排列。

这里要讲一下set与list的区别

1、list按插入顺序排列,而set存储和取出顺序不一致(有序性)

2、list可重复,而set元素是唯一的(唯一性)

3、list可以使用索引来操作元素,而set无法使用索引来操作元素(获取元素)

大数据开发基础之JAVA基础集合一

因为JAVA集合涉及的知识点比较多,所以关于JAVA是分了两期来写的,这样也方便大家理解,免得造成阅读疲劳,所以下次更新的就是JAVA集合二。JAVA集合是一个比较重要的基础知识点,所以大家在理解的时候需要用心打好基础,以上就是本期的内容了,希望大家点个关注,精彩文章不会错过。

展开阅读全文

页面更新:2024-03-29

标签:有序性   基础   数据   知识点   数组   线程   容器   长度   索引   元素   接口   区别   对象   操作   文章   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top