栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础——ArrayList、HashMap、HashSet

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础——ArrayList、HashMap、HashSet

一、ArrayList

        ArrayList 类是一个可以动态修改的数组,数据允许重复,与普通数组的区别就是它没有固定大小,可以添加、修改、删除元素。ArrayList 继承了 AbstractList 类,并实现 List 接口。

ArrayList extends AbstractList implements List

(1)、初始化

import java.util.ArrayList; //从util中导入ArrayList类
ArrayList arr = 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
 HashMap maps = 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
 HashSet sets = new HashSet();
//sets是对象名,Integer是对象的数据类型

 (2)、添加数据,对象名.add(数据值)

 数据值要与定义的数据类型保持一致,数据不能重复添加,重复添加的值只记录第一次添加,如上所示的输出为:[1,23,43]

 (3)、删除数据,与HashMap相似,通过对象名.remove(数据值)删除对应数据,对象名.clear()删除全部的数据

 (4)、遍历数据,可以使用加强for循环,Iterator迭代器和forEach进行遍历

如下所示的输出解果均为:1 23 43

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028332.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号