编程之路小细节-数据储存的浅析

来源:互联网 发布:excel单元格数据分行 编辑:程序博客网 时间:2024/06/10 04:09

Java语言中,数组的容量是初始化后就固定的,除非手动为该数组进行扩容,才会改变该数组的容量大小,并且一个数组中只能存放类型相同的数据(基本类型/引用类型)。而Java集合可以储存和操作数量不固定的一组数据,所有Java集合都位于java.util包中,但是java集合不能储存基本数据类型,只能储存引用类型的数据。


Java集合主要分为三种类型:Set(集合),List(列表),Map(映射)。Collection是最基本的集合接口,声明了适合于Java集合(只包括Set和List)的通用方法。而Set和List都集成了Collection和Map。


Collection接口的方法:

(1)boolean add(Object obj):向集合中加入一个对象的引用

(2)void clear():删除集合中所有的对象,即不再持有这些对象的引用。

(3)boolean isEmpty():判断集合是否为空

(4)boolean contains(Object obj):判断集合中是否持有特定对象的引用。

(5)boolean remove(Object obj):从集合中删除一个对象的引用。

(6)int size():返回集合中元素的数目

(7)Iterator iterator():返回一个Iterator对象,可以用来遍历集合中的元素。

(8)Object[] toArray():返回一个数组,该数组中包括集合中的所有元素。


Set集合:

Set是最简单的一种集合,集合中的对象不按照特定的方式进行排序,并且没有重复对象。

Set接口的两个实现类:

HashSet:HashSet类按照哈希算法来存取集合中的对象,存取速度比较快。

TreeSet:TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

Set的用法:存放的是对象的引用,没有重复对象。

Set集合的简单代码截图如下:



List列表:

List列表的特征是其元素以线性方式储存,集合众可以储存重复对象。

List接口主要实现类包括:

ArrayList():表示长度可以改变的数组,可以对元素进行随机访问,向ArrayList()中插入与删除元素的速度慢。

LinkedList():采用链表数据结构实现,插入和删除速度快,而数据访问速度慢。

List的get(int index)方法返回集合中由参数index指定的索引位置的对象,下标从''0''开始。

List的简单代码截图如下:



Map映射:

Map是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。Map没有继承于Collection接口,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。

Map常用的方法:

(1)Object put(Object key, Object value):向集合中添加元素。

(2)Object remove(Object key):删除与key相关的元素。

(3)void putAll(Map map):将来自特定映像的所有元素添加给该映像。

(4)void clear():从映像中删除所有映射。

(5)Object get(Object key):获取与关键字key相关的值对象。Map集合中的键对象不允许重复,也就是说,任意两个键对象通过equals()方法比较的结果都是false,但是可以将任意多个键同时映射到同一个值对象上。

(6)Conllections:集合实用类,Conllections提供了Java集合实用的静态方法。

Map映射的简单代码截图如下:



总结:

1.List的功能方法:

两种List,一种是基本ArrayList,其优点在于随机访问元素。另一种是LinkedList,其可以快捷的进行元素的插入和删除。保证维护元素的特定次序。

2.Set的功能方法:

Set具有与Collection完全一样的接口,因此没有任何额外的功能。实际上Set就是Collection,只是表现不同的行为(继承和多态的典型应用)。Set保存不重复的元素,即存入Set的每个元素都必须是唯一的,必须定义equals()方法以确保对象的唯一性。不保证维护元素的特定次序。

3.Map的功能方法:

标准的Java类库中包含了几种不同的Map:HashMap,TreeMap,LinkedHashMap,WeakHashMap,IdentityHashMap。它们都有相同的基本接口Map,但是行为、效率、排序策略、保存对象的生命周期和判定 ''键'' 等价的策略等各不相同。所有Java对象都能产生散列码,因为hashCode()方法是定义在基类Object中的方法。由于HashMap使用对象的hashCode()进行查询,所以能够显著提高性能。


每天努力一点,就是最大的进步。

阅读全文
'); })();
1 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 丧的句子 丧考妣 珠峰拥堵多人丧生 丧图 丧潮图 抖音丧图 丧文字配图 丧背景图 海绵宝宝丧图 丧图女 丧图带字 海绵宝宝丧图黑白 丧字背景图 超丧背景图 丧图文字 抖音丧图大全 丧系背景图 丧图男 很丧的潮图 很丧的抑郁潮图 微丧背景图 抖音里很丧的图 丧图配字 海绵宝宝黑白丧图 伊藤润二双一丧图抖音 2018海绵宝宝三格丧图 抖音海绵宝宝黑白丧图 处女丧失 丧失 処女丧失 处女丧失区 処女丧失18歳纯真无垢従顺 丧失劳动能力 処女丧失系列全部作品 2017処女丧失出血 丧失的反义词 全球因吸丧失劳动能力 丧失劳动能力鉴定标准 超级丧失工厂 男人吃什么会丧失性能 男人吃什么会快速丧失性能