三大常用集合

1.Set集合

在Java中,Set是一种集合类型,它是一种不允许包含重复元素的集合,每个元素在Set中是唯一的。Set接口的常用实现类有HashSet、TreeSet和LinkedHashSet。以下是关于Set集合的一些重要特点和用法:

特点:

  1. 不允许重复元素:Set中每个元素都是唯一的,如果尝试向Set中添加重复元素,则添加操作不会成功。
  2. 无序性:Set并不维护元素的添加顺序,元素的存储顺序由具体的Set实现类决定。HashSet是根据哈希算法来存储元素,没有特定的顺序;TreeSet基于元素的自然顺序或者Comparator来进行排序;LinkedHashSet保留了元素添加的顺序。
  3. 允许空元素:Set集合允许存储一个空元素(null)。

常用方法:

  1. 添加元素:使用add方法向Set中添加元素。
  2. 删除元素:使用remove方法移除Set中的元素。
  3. 判断元素是否存在:使用contains方法判断Set中是否包含某个元素。
  4. 获取Set的大小:使用size方法获取Set中元素的个数。
  5. 遍历Set:Set集合可以使用迭代器(Iterator)或者增强for循环进行遍历。

示例:

import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        
        // 添加元素
        set.add("apple");
        set.add("orange");
        set.add("banana");
        set.add("apple"); // 添加重复元素,不会成功
        
        // 删除元素
        set.remove("orange");
        
        // 判断元素是否存在
        if(set.contains("banana")) {
            System.out.println("Set contains 'banana'");
        }
        
        // 遍历Set
        for(String element : set) {
            System.out.println(element);
        }
        
        // 获取Set的大小
        System.out.println("Size of Set: " + set.size());
    }
}

在实际应用中,Set集合常用于去重、判断元素是否存在以及集合运算等场景。通过Set集合提供的特性和方法,可以方便地实现对元素的管理和操作。

Set 是 Java 集合框架中的一个接口,表示不包含重复元素的集合。Set 接口的实现类通常用于存储不重复的元素,并且不保证元素的顺序。常见的 Set 实现类包括 HashSetTreeSet 和 LinkedHashSet

1. 创建 Set 对象:

可以使用以下方法创建 Set 对象:

Set<String> hashSet = new HashSet<>();  // 使用 HashSet 创建 Set
Set<String> treeSet = new TreeSet<>();  // 使用 TreeSet 创建 Set
Set<String> linkedHashSet = new LinkedHashSet<>();  // 使用 LinkedHashSet 创建 Set

2. 常用方法:

  • add(E e):向集合中添加元素,如果元素已存在,则不添加。
  • remove(Object o):从集合中移除指定元素。
  • contains(Object o):判断集合中是否包含指定元素。
  • size():返回集合中元素的个数。
  • isEmpty():判断集合是否为空。
  • clear():清空集合中的所有元素。
  • iterator():返回用于迭代集合的迭代器。

3. 示例代码:

以下是一个示例代码,演示了如何使用 HashSet 和 TreeSet

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetExample {
    public static void main(String[] args) {
        // 使用 HashSet 创建 Set
        Set<String> hashSet = new HashSet<>();
        hashSet.add("apple");
        hashSet.add("banana");
        hashSet.add("orange");
        hashSet.add("banana");  // 不会重复添加

        System.out.println("HashSet elements: " + hashSet);

        // 使用 TreeSet 创建 Set
        Set<String> treeSet = new TreeSet<>();
        treeSet.add("pineapple");
        treeSet.add("banana");
        treeSet.add("orange");
        treeSet.add("banana");  // 不会重复添加

        System.out.println("TreeSet elements: " + treeSet);
    }
}

在上面的示例中,首先创建了一个 HashSet 和一个 TreeSet,然后向集合中添加元素。由于集合不允许重复元素,因此向 HashSet 和 TreeSet 中添加重复元素时,只会添加一次。最后打印输出了集合中的元素。通过使用 Set 接口的实现类,可以方便地管理不重复的元素集合。

2.Map集合

在Java中,Map接口表示一种将键值对映射关系存储起来的集合。Map集合中的每个元素都包含一个键和对应的值,键和值之间是一种一对一的映射关系,其中键是唯一的,值可以重复。

Map集合广泛用于保存和处理数据,在实际开发中应用非常广泛。Java中常用的Map接口的实现类有:

  1. HashMap:基于哈希表实现,可以快速查找键值对,适合存储大量数据。
  2. LinkedHashMap:在HashMap的基础上增加了按照插入顺序或访问顺序排序键值对。
  3. TreeMap:基于红黑树实现,键值对按照自然顺序或自定义比较器排序。
  4. ConcurrentHashMap:线程安全的HashMap实现,在多线程环境下性能更好。

Map集合常用的方法有:

  • put(key, value):向Map中添加键值对。
  • get(key):根据键获取对应的值。
  • containsKey(key):判断Map中是否包含指定的键。
  • containsValue(value):判断Map中是否包含指定的值。
  • remove(key):移除指定键对应的键值对。
  • size():返回Map中键值对的数量。

Map集合是常用的数据结构之一,能够快速进行键值对的查找、删除以及更新操作。在开发过程中,Map集合被广泛应用于保存配置信息、缓存数据、处理请求参数等场景。

Map集合是Java中用于存储键值对映射关系的数据结构,下面是一些Map集合的基本用法:

创建Map对象

可以使用HashMapLinkedHashMapTreeMap等Map的实现类来创建Map对象:

Map<String, Integer> map = new HashMap<>();

添加键值对

使用put(key, value)方法向Map中添加键值对:

map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);

获取值

使用get(key)方法根据键获取对应的值:

int appleCount = map.get("apple");

判断键是否存在

使用containsKey(key)方法判断Map中是否包含指定的键:

if (map.containsKey("banana")) {
    System.out.println("Map contains key 'banana'");
}

迭代Map

可以使用keySet()entrySet()values()等方法对Map进行迭代,获取键集、键值对集或值集:

// 遍历所有键
for (String key : map.keySet()) {
    int value = map.get(key);
    System.out.println(key + ": " + value);
}

// 遍历所有键值对
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    String key = entry.getKey();
    int value = entry.getValue();
    System.out.println(key + ": " + value);
}

// 遍历所有值
for (int value : map.values()) {
    System.out.println(value);
}

删除键值对

使用remove(key)方法移除指定键对应的键值对:

map.remove("orange");

Map集合是一种非常有用的数据结构,能够方便地存储和操作键值对数据。在实际开发中,Map经常被用于保存配置信息、统计数据、缓存数据等场景。熟练掌握Map集合的用法有助于提高代码编写效率和数据处理能力。

3.List集合

List 是 Java 集合框架中的一个接口,表示有序的集合,可以包含重复元素。List 接口的常见实现类包括 ArrayListLinkedList 和 Vector

1. 创建 List 对象:

可以使用以下方法创建 List 对象:

List<String> arrayList = new ArrayList<>();  // 使用 ArrayList 创建 List
List<String> linkedList = new LinkedList<>();  // 使用 LinkedList 创建 List
List<String> vector = new Vector<>();  // 使用 Vector 创建 List

2. 常用方法:

  • add(E e):向列表尾部添加元素。
  • add(int index, E element):在指定位置插入元素。
  • get(int index):获取指定位置的元素。
  • remove(int index):移除指定位置的元素。
  • remove(Object o):移除指定元素。
  • contains(Object o):判断列表中是否包含指定元素。
  • size():返回列表的大小。
  • isEmpty():判断列表是否为空。
  • clear():清空列表中所有元素。
  • set(int index, E element):替换指定位置的元素。

3. 示例代码:

以下是一个示例代码,演示了如何使用 ArrayList 和 LinkedList

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        // 使用 ArrayList 创建 List
        List<String> arrayList = new ArrayList<>();
        arrayList.add("apple");
        arrayList.add("banana");
        arrayList.add("orange");

        // 在指定位置插入元素
        arrayList.add(1, "pineapple");

        System.out.println("ArrayList elements: " + arrayList);

        // 使用 LinkedList 创建 List
        List<String> linkedList = new LinkedList<>();
        linkedList.add("car");
        linkedList.add("bus");
        linkedList.add("bike");

        // 移除指定位置的元素
        linkedList.remove(1);

        System.out.println("LinkedList elements: " + linkedList);
    }
}

在上面的示例中,首先创建了一个 ArrayList 和一个 LinkedList,然后向列表中添加元素并插入元素。随后删除了一个元素,并打印输出了列表的元素。通过使用 List 接口的实现类,可以操作有序、可以重复的元素集合。

List 是 Java 集合框架中的一个接口,表示有序的集合,可以包含重复元素。List 接口的实现类包括 ArrayList、LinkedList 和 Vector。下面介绍 List 集合的常见用法:

1. 创建 List 对象:

可以使用以下方法创建 List 对象:

List<String> list = new ArrayList<>();  // 使用 ArrayList 创建 List
List<Integer> list = new LinkedList<>();  // 使用 LinkedList 创建 List
List<Double> list = new Vector<>();  // 使用 Vector 创建 List

2. 添加元素:

可以使用 add(E e) 方法向 List 中添加元素,可以在列表的末尾添加元素。

list.add("apple");
list.add("banana");
list.add("orange");

3. 获取元素:

可以使用 get(int index) 方法获取指定位置的元素。

String fruit = list.get(1);  // 获取第二个元素(索引从0开始)

4. 删除元素:

可以使用 remove(int index) 方法删除指定位置的元素,或者使用 remove(Object o) 方法删除指定元素。

list.remove(1);  // 删除第二个元素
list.remove("apple");  // 删除元素值为 "apple" 的元素

5. 遍历元素:

可以使用 for 循环或者迭代器遍历列表中的元素。

for(String fruit : list) {
    System.out.println(fruit);
}

Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {
    String fruit = iterator.next();
    System.out.println(fruit);
}

6. 其他常用方法:

  • size():返回列表的大小。
  • isEmpty():判断列表是否为空。
  • clear():清空列表中的所有元素。
  • indexOf(Object o):返回元素在列表中第一次出现的索引。
  • contains(Object o):判断列表中是否包含指定元素。
  • set(int index, E element):替换指定位置的元素。

示例代码:

以下是一个示例代码,演示了 List 集合的基本用法:

import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");

        for (String fruit : list) {
            System.out.println(fruit);
        }

        list.remove(1);  // 删除第二个元素

        System.out.println("Size of list: " + list.size());
        System.out.println("Is list empty? " + list.isEmpty());
    }
}

通过使用 List 集合,可以方便地存储有序、可以重复的元素集合,并进行常见的操作,如添加、获取、删除、遍历等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/768121.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全面解析自然语言处理(NLP):基础、挑战及应用前景

自然语言处理 (NLP) 简介与应用前景 自然语言处理&#xff08;NLP&#xff09;是人工智能和计算语言学的一个分支&#xff0c;致力于使计算机能够理解、解释和生成人类语言。这篇博文将深入探讨自然语言处理的基础知识、挑战、典型任务及其广泛的应用前景。 一、自然语言处理的…

企业部署 LLM 的四种方法

目录 生产环境中的四种 LLM 方法1. 基于上下文的提示工程 -- Prompt Engineering2. 检索增强生成 -- RAG3. 微调模型 -- Fine Tune4. 训练模型参考随着大型语言模型 (LLM) 的快速发展,企业正积极探索其用例,并将首批生成式 AI 应用部署到生产环境中。自今年 LLM 或 LLMOps 真…

全网最详细的软件测试面试题总结+基础知识(完整版)

一、什么是软件&#xff1f; 软件是计算机系统中的程序和相关文件或文档的总称。 二、什么是软件测试&#xff1f; 说法一&#xff1a;使用人工或自动的手段来运行或测量软件系统的过程&#xff0c;以检验软件系统是否满足规定的要求&#xff0c;并找出与预期结果之间的差异…

python3.8安装详细教程

python3.8下载及安装详细教程 Python 3.8 是一个重要的Python版本&#xff0c;它引入了一系列新功能和改进。以下是对Python 3.8的详细概述&#xff0c;包括其关键特性、安装方法以及版本状态等信息。 Python 3.8的关键特性 海象运算符&#xff08;Walrus Operator&#xff09…

字符串操作函数

目录 一.strlen函数 二.strcpy函数 三.strcat函数 四.strcmp函数 五.strncpy函数 六.strncat函数 七.strncmp 函数 八.strstr函数 九.strtok函数 十.strchr函数 十一.strrchr函数 十二.strpbrk函数 十三.strspn函数 十四.strcspn函数 一.strlen函数 size_t str…

yaklang window安装 vscode运行得到“hello world”

资源来源&#xff1a;旅程伊始&#xff1a;Yak 语言环境安装与搭建环境 | Yak Program Language 安装yak语言非常简单&#xff0c;管理员权限打开命令行运行以下命令&#xff1a; powershell (new-object System.Net.WebClient).DownloadFile(https://yaklang.oss-cn-beijing…

“穿越时空的机械奇观:记里鼓车的历史与科技探秘“

在人类文明的发展历程中&#xff0c;科技的创新与进步不仅仅推动了社会的进步&#xff0c;也为我们留下了丰富的文化遗产。记里鼓车&#xff0c;作为一种古老的里程计量工具&#xff0c;其历史地位和技术成就在科技史上具有重要的意义。本文将详细介绍记里鼓车的起源、结构原理…

MySQL数据库设计作业 ——《网上书店系统》数据库设计实验报告

数据库设计作业——《网上书店系统》数据库设计 一、功能需求 普通用户&#xff1a;可以进行最基础的登陆操作&#xff0c;可浏览图书、按类别查询图书、查看 图书的详细信息&#xff0c;还可以注册成为会员。会员&#xff1a;需要填写详细信息&#xff08;真实姓名、性别、手…

SSM学习4:spring整合mybatis、spring整合Junit

spring整合mybatis 之前的内容是有service层&#xff08;业务实现层&#xff09;、dao层&#xff08;操作数据库&#xff09;&#xff0c;现在新添加一个domain&#xff08;与业务相关的实体类&#xff09; 依赖配置 pom.xml <?xml version"1.0" encoding&quo…

springboot+vue+mybatis企业保修系统+PPT+论文+讲解+售后

企业管理系统提供给用户一个企业信息管理的系统&#xff0c;最新的企业信息让用户及时了解企业管理动向,,还能通过交流区互动更方便。本系统采用了B/S体系的结构&#xff0c;使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、员工和主管三个部分&#…

【C语言】手撕结构体内存对齐

©作者:末央&#xff06; ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨&#xff0c;书写未来之大梦 目录 结构体对齐规则结构体大小计算 - 三步曲 结构体对齐规则 怎么计算结构体的内存大小。这就涉及到结构体内存对齐的问题。 结构体的第⼀个成员对⻬到…

项目实战--MySQL实现分词模糊匹配

一、需求描述 推广人员添加公司到系统时&#xff0c;直接填写公司简称&#xff0c;而公司全称可能之前已经被添加过&#xff0c;为防止添加重复的公司&#xff0c;所以管理员在针对公司信息审批之前&#xff0c;需要查看以往添加的公司信息里是否有相同公司。 二、方案 技术…

项目2:API Hunter 细节回顾 -1

一. 接口调用 对于开发者来说&#xff0c;接口的调用应当是方便快捷的&#xff0c;而且出于安全考虑&#xff0c;通常会选择在后端调用第三方 API&#xff0c;避免在前端暴露诸如密码的敏感信息。 若采用 HTTP 调用方式&#xff1a; HttpClientRestTemplate第三方库&#xf…

【JavaWeb】登录校验-会话技术(一)Cookie与Session

登录校验 实现登陆后才能访问后端系统页面&#xff0c;不登陆则跳转登陆页面进行登陆。 首先我们在宏观上先有一个认知&#xff1a; HTTP协议是无状态协议。即每一次请求都是独立的&#xff0c;下一次请求并不会携带上一次请求的数据。 因此当我们通过浏览器访问登录后&#…

py黑帽子学习笔记_burp

配置burp kali虚机默认装好了社区版burp和java&#xff0c;其他os需要手动装 burp是用java&#xff0c;还得下载一个jython包&#xff0c;供burp用 配apt国内源&#xff0c;然后apt install jython --download-only&#xff0c;会只下载包而不安装&#xff0c;下载的目录搜一…

【JVM-05】Java内存区域(运行时数据区)、对象创建过程、内存布局

【JVM-05】Java内存区域即运行时数据区、对象创建过程、内存布局 1. 介绍下Java内存区域(运行时数据区)1.1 程序计数器(线程私有)1.2 虚拟机栈(线程私有)1.3 本地方法栈(线程私有)1.4 Java堆(线程共享)1.5 方法区(线程共享)1.5.1 方法区和永久代的关系1.5.2 常用参数1.5.3 为什…

用随机森林算法进行的一次故障预测

本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法&#xff0c;来训练一个硬盘故障预测模型&#xff0c;并测试效果。 实验目标 掌握使用机器学习方法训练模型的基本流程&#xff1b;掌握使用pandas做数据分析的基本方法&#xff1b;掌握使用scikit-l…

AWS的收费方式与计费项目

AWS&#xff08;亚马逊云服务&#xff09;是全球领先的云计算服务提供商&#xff0c;为各种规模和类型的企业提供了广泛的云计算服务。AWS的收费方式和计费项目是许多用户关心的问题&#xff0c;因为了解这些信息有助于企业更好地规划和控制成本。本文将介绍AWS的收费方式和常见…

MobileVitv1替换yolov8主干网络

一、原理介绍 MobileViT模型是为移动设备设计的轻量级、通用目的视觉变换器。它融合了卷积神经网络&#xff08;CNN&#xff09;和视觉变换器&#xff08;ViT&#xff09;的优势&#xff0c;旨在在保持高效性能的同时减少模型参数和降低延迟。以下是关于MobileViT模型的主要原理…

MATLAB中findall用法

目录 语法 说明 示例 查找具有可见或隐藏句柄的图窗 查找句柄处于隐藏状态的对象 查找 Text 对象 提示 findall的功能是查找所有图形对象。 语法 h findall(objhandles) h findall(objhandles,prop1,value1,...,propN,valueN) 说明 h findall(objhandles) 返回 ob…