本篇文章小编给大家分享一下Java解析Collection集合之ArrayList和HashSet代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
Collection
Collection接口被List接口和Set接口继承
本章只介绍常用的集合
List
ArrayList是List接口的实现类
ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口。
创建ArrayList对象:
public class List { public static void main(String[] args) { var list = new ArrayList(); } }
向集合中添加数据:
add()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); } }
清空集合数据:
clear()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); list.clear(); System.out.println(list); } }
修改指定索引位置的对象
set()
public class List { public static void main(String[] args) { var list = new ArrayList(); list.add("a"); list.add(1); list.add(1); System.out.println(list); list.set(2, "a"); System.out.println(list); } }
Set
HashSet
HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。
创建ArrayList对象:
public class Set { public static void main(String[] args) { var set = new HashSet<>(); } }
向集合中添加数据:
add()
集合中的元素不能重复
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); } }
清空集合数据:
clear()
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); set.clear(); System.out.println(set); } }
删除指定元素
public class Set { public static void main(String[] args) { var set = new HashSet<>(); set.add(1); set.add("a"); set.add("a"); System.out.println(set); set.remove("a"); System.out.println(set); } }
ArrayList和HashSet的区别
1.HashSet 是不重复的 而且是无序的! 唯一性保证. 重复对象equals方法返回为true ,重复对象hashCode方法返回相同的整数 HashSet其实就是一个HashMap,只是你只能通过Set接口操作这个HashMap的key部分
2.ArrayList是可重复的 有序的 特点:查询效率高,增删效率低 轻量级 线程不安全。 arraylist:在数据的插入和删除方面速度不佳,但是在随意提取方面较快
泛型
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。
一般用集合的时候都会用到泛型,泛型就是给集合加一个类型约束。 它可以是String、可以是Object 泛型不支持基本类型int,请使用包装器类型 Integer
创建泛型:
Listlist = new ArrayList<>();
这样这个集合里面只能加String类型。
忍者必须死34399账号登录版 最新版v1.0.138v2.0.72
下载勇者秘境oppo版 安卓版v1.0.5
下载忍者必须死3一加版 最新版v1.0.138v2.0.72
下载绝世仙王官方正版 最新安卓版v1.0.49
下载Goat Simulator 3手机版 安卓版v1.0.8.2
Goat Simulator 3手机版是一个非常有趣的模拟游
Goat Simulator 3国际服 安卓版v1.0.8.2
Goat Simulator 3国际版是一个非常有趣的山羊模
烟花燃放模拟器中文版 2025最新版v1.0
烟花燃放模拟器是款仿真的烟花绽放模拟器类型单机小游戏,全方位
我的世界动漫世界 手机版v友y整合
我的世界动漫世界模组整合包是一款加入了动漫元素的素材整合包,
我的世界贝爷生存整合包 最新版v隔壁老王
我的世界MITE贝爷生存整合包是一款根据原版MC制作的魔改整