Java 详解Collection集合之ArrayList和HashSet

网友投稿 276 2022-08-18


Java 详解Collection集合之ArrayList和HashSet

目录CollectionListArrayListSetHashSetArrayList和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");

dLgkwDU 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:在数据http://的插入和删除方面速度不佳,但是在随意提取方面较快

泛型

泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。

一般用集合的时候都会用到泛型,泛型就是给集合加一个类型约束。 它可以是String、可以是Object 泛型不支持基本类型int,请使用包装器类型 Integer

创建泛型:

List list = new ArrayList<>();

这样这个集合里面只能加String类型。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 常见排序算法代码分享
下一篇:SpringBoot为何可以使用Jar包启动详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~