【JAVA百炼成仙】渡劫篇 上——Collection集合(List、Set)

简介: Collection集合(List、Set)

🔎这里是JAVA成仙路,关注我学习JAVA不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

**前言:本章具体介绍了ArrayList和HashSet两种集合的基本使用方法和区别,图解穿插代码实现。

JAVA成仙路从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助!**
@[TOC]
在这里插入图片描述

img

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

创建泛型:

List<String> list = new ArrayList<>();
这样这个集合里面只能加String类型。

下一章介绍Map集合

新社区

【IT桃花岛】
前五十加入的成员全部设为元老,以后所有帖子加精提高曝光。
大家可以把自己的博客分享到社区一起互访,三个社区管理员每天会给社区内所有分享的博客高质量三连。

社区连接:
https://bbs.csdn.net/forums/ITtaohuadao?category=0

想要增加自身流量的兄弟一起冲

官方活动

CSDN社区 《创作达人》活动,只要参与其中并创作文章就有机会获得官方奖品:精品日历、新程序员杂志,快来参与吧!链接直达 https://bbs.csdn.net/topics/605272551

相关文章
|
20天前
|
存储 缓存 安全
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
55 20
|
2月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
98 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
2月前
set集合
HashSet(无序,唯一): 基于 HashMap 实现的,底层采用 HashMap 来保存元素。 LinkedHashSet: LinkedHashSet 是 HashSet 的子类,并且其内部是通过 LinkedHashMap 来实现的。 TreeSet(有序,唯一): 红黑树(自平衡的排序二叉树)。
|
2月前
|
存储 算法 Java
Java Set深度解析:为何它能成为“无重复”的代名词?
Java的集合框架中,Set接口以其“无重复”特性著称。本文解析了Set的实现原理,包括HashSet和TreeSet的不同数据结构和算法,以及如何通过示例代码实现最佳实践。选择合适的Set实现类和正确实现自定义对象的hashCode()和equals()方法是关键。
33 4
|
2月前
|
Java
那些与Java Set擦肩而过的重复元素,都经历了什么?
在Java的世界里,Set如同一位浪漫而坚定的恋人,只对独一无二的元素情有独钟。重复元素虽屡遭拒绝,但通过反思和成长,最终变得独特,赢得了Set的认可。示例代码展示了这一过程,揭示了成长与独特性的浪漫故事。
22 4
|
2月前
|
Java 开发者
Java Set:当“重复”遇见它,秒变“独宠”!
在Java编程中,Set接口确保集合中的元素不重复,每个元素都是独一无二的“独宠”。本文介绍了Set的两种常见实现:HashSet和TreeSet。HashSet基于哈希表实现,提供高效的添加、删除和查找操作;TreeSet基于红黑树实现,不仅去重还能对元素进行排序。通过示例代码,展示了这两种集合的具体应用,帮助开发者更好地理解和使用Set。
27 4
|
2月前
|
存储 Java 开发者
Java Set:无序之美,不重复之魅!
在Java的集合框架中,Set接口以其“无序之美”和“不重复之魅”受到开发者青睐。Set不包含重复元素,不保证元素顺序,通过元素的hashCode()和equals()方法实现唯一性。示例代码展示了如何使用HashSet添加和遍历元素,体现了Set的高效性和简洁性。
42 4
|
2月前
|
存储 算法 Java
为什么Java Set如此“挑剔”,连重复元素都容不下?
在Java的集合框架中,Set是一个独特的接口,它严格要求元素不重复,适用于需要唯一性约束的场景。Set通过内部数据结构(如哈希表或红黑树)和算法(如哈希值和equals()方法)实现这一特性,自动过滤重复元素,简化处理逻辑。示例代码展示了Set如何自动忽略重复元素。
33 1
|
Java
java中Set,Map,Stack一些简单用法
1 import java.util.Iterator; 2 import java.util.Stack; 3 import java.io.*; 4 import java.util.
639 0