这里是JAVA成仙路,关注我学习JAVA不迷路
如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位点赞评论收藏⭐️
前言:本章具体介绍了ArrayList和HashSet两种集合的基本使用方法和区别,图解穿插代码实现。
JAVA成仙路从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助!
Collection接口被List接口和Set接口继承
本章只介绍常用的集合
ArrayList是List接口的实现类
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);
}
}
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);
}
}
1.HashSet 是不重复的 而且是无序的!
唯一性保证. 重复对象equals方法返回为true ,重复对象hashCode方法返回相同的整数
HashSet其实就是一个HashMap,只是你只能通过Set接口操作这个HashMap的key部分,
2.ArrayList是可重复的 有序的
特点:查询效率高,增删效率低 轻量级 线程不安全。
arraylist:在数据的插入和删除方面速度不佳,但是在随意提取方面较快
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。
一般用集合的时候都会用到泛型,泛型就是给集合加一个类型约束。
它可以是String、可以是Object
泛型不支持基本类型int,请使用包装器类型 Integer
创建泛型:
List<String> list = new ArrayList<>();
这样这个集合里面只能加String类型。
【IT桃花岛】
前五十加入的成员全部设为元老,以后所有帖子加精提高曝光。
大家可以把自己的博客分享到社区一起互访,三个社区管理员每天会给社区内所有分享的博客高质量三连。
社区连接:
https://bbs.csdn.net/forums/ITtaohuadao?category=0
想要增加自身流量的兄弟一起冲
CSDN社区 《创作达人》活动,只要参与其中并创作文章就有机会获得官方奖品:精品日历、新程序员杂志,快来参与吧!链接直达 https://bbs.csdn.net/topics/605272551