首页 > 编程语言 >Java--集合

Java--集合

时间:2024-07-21 18:26:11浏览次数:14  
标签:set Java -- 元素 List add Set fruits 集合

1. list集合的三大实现

Java提供了几种List接口的实现,包括:

  • ArrayList: 基于动态数组实现,提供快速随机访问。添加和删除元素可能较慢,因为可能需要数组复制。
  • LinkedList: 基于双向链表实现,提供快速的添加和删除操作,但随机访问速度较慢。
  • Vector: 和ArrayList类似,但它是同步的。
  • Stack: 继承自Vector,提供了栈的所有基本操作(LIFO:后进先出)。

示例代码:增删改查

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

public class ListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList对象
        List<String> fruits = new ArrayList<>();

        // 向List中添加元素
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Orange");

        // 访问List中的元素
        for (String fruit : fruits) {
            System.out.println(fruit);
        }

        // 获取并打印List中的特定元素,例如第一个元素
        System.out.println("The first fruit is: " + fruits.get(0));

        // 删除List中的元素
        fruits.remove("Banana");

        // 检查元素是否存在于List中
        boolean hasApple = fruits.contains("Apple");
        System.out.println("Does the list have Apple? " + hasApple);
    }
}

2. Set集合

以下是 Set 接口的一些关键特性:

  1. 不包含重复元素Set 集合不允许存储重复的元素。如果尝试添加已存在的元素,Set 集合将根据其实现细节决定是否接受新元素或保持不变。
  2. 无序Set 集合中的元素不维护特定的顺序。这意味着元素的插入顺序不一定与遍历时的顺序相同。
  3. 动态Set 的大小可以动态变化,可以在任何时候添加或删除元素。

Java提供了几种 Set 接口的实现,包括:

  • HashSet: 基于哈希表实现,提供快速查找、添加和删除操作。HashSet 不保证元素的顺序。
  • LinkedHashSet: 与 HashSet 类似,但它维护了元素的插入顺序。
  • TreeSet: 基于红黑树实现,可以按照自然顺序或自定义顺序对元素进行排序。

示例代码:

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

public class SetExample {
    public static void main(String[] args) {
        // 创建一个HashSet对象
        Set<String> set = new HashSet<>();

        // 向Set中添加元素
        set.add("Apple");
        set.add("Banana");
        set.add("Orange");

        // 尝试添加重复的元素
        set.add("Apple");

        // 访问Set中的元素
        for (String fruit : set) {
            System.out.println(fruit);
        }

        // 检查Set中是否包含特定元素
        boolean containsBanana = set.contains("Banana");
        System.out.println("Does the set contain Banana? " + containsBanana);

        // 从Set中删除元素
        set.remove("Banana");

        // 打印删除后的Set
        System.out.println("Set after removing Banana: " + set);
    }
}

标签:set,Java,--,元素,List,add,Set,fruits,集合
From: https://blog.csdn.net/2302_81621310/article/details/140587429

相关文章

  • 基于51单片机的zigbee餐桌呼叫系统设计
    基于51单片机的zigbee餐桌呼叫系统设计0、毕业设计选题原则说明(重点)1、项目简介1.1系统构成1.2系统功能1.3演示视频2、部分电路设计2.1STM32单片机核心板电路设计2.2按键电路设计2.3LCD1602液晶显示电路设计3.4、ZigBee通信模块电路设计3、部分代码展示3.1LCD16......
  • SPI通信----STM32C8T6+RC522刷卡+0.96寸OLED显示
    1.项目涉及的知识点1.SPI通信在RC522上的刷卡应用2.操作STM32内部FLASH3.IIC在OLED上显示数据的应用4.串口编程及其应用2.STM32与各个模块的管脚接线STM32管脚模块管脚3V3或者5V串口3V3或者5VPA9串口1的RXDPA10串口1的TXDGND串口GND3V3或者5V0.96寸OLED屏的3V3或者5VPB60.96......
  • 04 CSS 轮播图无缝滚动
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • 蓝牙通信--STM32读取超声波传感器并在手机APP上显示
    1.实物接线本设计主要是用HC-SR04超声波传感器测量距离,通过串口3经过HC-05蓝牙芯片发送到蓝牙调试助手APP上显示。STM32管脚模块管脚3V3超声波VCCPB7超声波ECHOPB6超声波TRIGGND超声波GND3V3串口3VCCPB10串口3RXDPB11串口3TXDGND串口3GND2.涉及的知识点    本......
  • 【C++11】lambda表达式
    目录lambda表达式function包装器bind绑定lambda表达式我们之前如果要对一组数据排序,我们可以调用sort,并且传一个仿函数对象或者函数指针或者调用库中的类模板并实例化成对象,比如:boolLess(inta,intb){ returna<b;}structGreater{ booloperator()(inta......
  • 用Python生成图形
    在Python中生成图形可以使用多种库,具体取决于你想要生成的图形类型。以下是一些常见的库和它们通常用于创建的图形类型:Matplotlib -最常用的绘图库,适合创建各种静态、动态以及交互式的可视化图表。Seaborn -基于Matplotlib,提供更高级的数据可视化功能,特别适用于统计图形。......
  • 学编程框架的建议
    前段时间,一位学Java的朋友问我:学长你好,请问怎么能够根据前台用户的输入,自动创建和修改数据库的表呢?在我看的视频教程中,都是先根据需求设计并且手动创建好库表,再去做增删改查。现在数据库表的字段是不固定的,就不知道怎么能动态地操作库表了。这个问题并不难,所有的创建库表操作......
  • E. Rudolf and k Bridges
    链接https://codeforces.com/problemset/problem/1941/E题目思路比较容易想到的一道题(但是之前想了好久hhh)。首先题意是对一连串的桥的代价求和,不难想到是前缀和求区间最小。那么就可以拆分这题为每行处理。容易想到dp,而且dp的过程也比较简单:设dp[i]是到达i的最小代价,那么对......
  • 大语言模型和API网关
    一、大模型能力和WAF配置员今天试验了百度大模型文心一言,大模型可以通过学习键值对内容,输出较为安全的正则表达式:1)以往的WAF配置员就是针对无校验的键值对,提供正则表达式以白名单的方式进行安全防护,防止外部的恶意输入。  可以参考华为产品:https://support.huawei.com/hedex......
  • ubuntu_安装cuda
    1.下载CUDAToolkithttps://developer.nvidia.com/cuda-toolkit-archive2.按照命令下载,安装3.环境变量vim~/.bashrc最后面添加exportPATH="/usr/local/cuda-12.1/bin:$PATH"exportLD_LIBRARY_PATH="/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH"退出,刷新source~......