一、ArrayList
ArrayList 类是一个可以动态修改的数组,数据允许重复,与普通数组的区别就是它没有固定大小,可以添加、修改、删除元素。ArrayList 继承了 AbstractList 类,并实现 List 接口。
ArrayList extends AbstractList implements List
(1)、初始化
import java.util.ArrayList; //从util中导入ArrayList类 ArrayListarr = new ArrayList (); //arr是对象名,E是arr的数据类型,只能是引用数据类型(String、Integer...)
(2)、添加数据,对象名.add(数据)
添加的数据类型与给定的E保持一致,数据可以重复添加,如上所示的输出为[12,2,2,2,2,2,2,2] ;
(3)、修改数据,对象名.set(位置索引,新值),位置索引从0开始
修改后的新值要与给定的E保持一致,如上所示,修改后输出为[12,2,34,2,78,2,2,2];
(4)、删除数据,对象名.remove(位置索引)
通过下标索引来删除对应数据,索引值不能超出对象的长度,如上所示输出[12,34,2,78,2,2]
(5)、遍历数据,for循环遍历、forEach遍历、迭代器遍历
下图所示的输出均为[12,34,2,78,2,2]
对象名.size()获取长度,对象名.get(位置索引)获取数据,图2 是增强for循环。
采用对象名.forEach(Lambda表达式)的方式遍历
通过迭代器来遍历,使用时要先导入 ,通过hasNext()方法遍历,不用考虑对象长度。
import java.util.Iterator;
二、HashMap
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即不会记录插入的顺序。继承于AbstractMap类,实现了 Map、Cloneable、java.io.Serializable 接口。
HashMap extends AbstractMap implements Map,Cloneable,Serializable
(1)、初始化 import java.util.HashMap;//先导入HashMap HashMapmaps = new HashMap (); //maps是对象名,Integer,String分别对应了key-value的数据类型 。key 与 value 类型可以相同也可以不同。
(2)、添加数据,对象名.put(key,value)
输出结果为{1=ds, 2=qw, 23=eqw, 232=eq2w},如果key的值有重复,只输出最后的value,value的值可以重复,如下所示:
输出结果为:{1=ds, 2=qw, 232=eqw} 。
(3)、修改数据
通过key不可重复,value可重复的特性,使用添加数据的方法覆盖原来key对应的value值。
输出结果为 :{1=das, 2=qw, 232=eqw}
(4)、删除数据,对象名.remove(key值)删除对应key值的数据,对象名.clear()删除全部的数据
输出结果为:{2=qw, 232=eqw}
输出结果为:{}
(5)、遍历数据
下述几种方式的输出结果均为:1:ds2:qw232:eqw
使用for循环,先通过对象名.keySet()方法遍历对象的key值,再通过对象名.get(key)方法获取对象的value值。
通过 lambda 表达式使用 forEach()
使用对象名.entrySet()方法遍历
使用迭代器进行遍历
三、HashSet
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。但允许有 null 值。HashSet 是无序的,即不会记录插入的顺序。且不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。HashSet 实现了 Set 接口。
HashSet impleme Set
(1)、初始化
import java.util.HashSet;//导入HashSet HashSetsets = new HashSet (); //sets是对象名,Integer是对象的数据类型
(2)、添加数据,对象名.add(数据值)
数据值要与定义的数据类型保持一致,数据不能重复添加,重复添加的值只记录第一次添加,如上所示的输出为:[1,23,43]
(3)、删除数据,与HashMap相似,通过对象名.remove(数据值)删除对应数据,对象名.clear()删除全部的数据
(4)、遍历数据,可以使用加强for循环,Iterator迭代器和forEach进行遍历
如下所示的输出解果均为:1 23 43



