List集合和Set集合

news2024/11/16 6:35:55

Collection:

Collection 不唯一,无序

List 不唯一,有序

Set 唯一,无序

ArrayList:内部使用长度可变的数组,遍历查询效率高

LinkedList:采用双向链表实现,增删改效率比较高

ArrayList:

常用方法:

ArrayList方法实例:

  public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("马六");
        System.out.println("大小为"+list.size());

        //指定位置插入,后面的会往后走
        list.add(3,"陈梦雨");
        System.out.println(list);

        //循环打印集合信息
        for(Object obj:list){
            System.out.println("循环打印"+obj);
        }

        //根据下标获取集合中的元素
        Object aa = list.get(1);
        System.out.println(aa);

        String bb = (String) list.get(2);
        System.out.println(bb);

        System.out.println("第三个"+list.get(3));

        //查找集合中是否存在指定元素
        boolean ccc = list.contains("马六");
        System.out.println(ccc);

        //根据下标删除
        list.remove(2);
        //根据元素删除,删除后,后面的会自动补过来
        list.remove("张三");

        //清空所有内容
        list.clear();
        System.out.println("清空后集合长度:"+list.size());

        //判断是否为空
        System.out.println("判断集合是否为空:"+list.isEmpty());
    }

LinkedList类:

LinkedList:采用双向链表实现,增删改效率比较高

常用方法:

链表本身不具备下标功能,但 LinkedList 类提供了下标访问方法以便于与 List 接口兼容。 所以LinkedList可以使用get()方法用来获取特定值。


 

Set接口:

Set接口存储一组唯一,无序的对象

Set接口不存在get()方法,因为没有下标

set接口下有两个实现类分别是HashSet和TreeSet

HashSet:
  • 底层结构:基于哈希表(HashMap),不保持元素的顺序。
  • 性能:提供常数时间复杂度的 add, remove, 和 contains 操作,适用于快速访问。
  • 特点:不保证元素的顺序,元素顺序可能会改变。对于需要不重复元素且对顺序无关的情况,HashSet 非常合适。

TreeSet:
  • 底层结构:基于红黑树(自平衡的二叉搜索树),保持元素的排序。
  • 性能:提供对 add, remove, 和 contains 操作的对数时间复杂度,适用于需要排序或范围查询的场景。
  • 特点:自动对元素进行排序(自然顺序或通过提供的 Comparator),使得可以遍历元素时按升序排列。

迭代器Iterator:

通过迭代器Iterator实现遍历

1.通过Set接口创建迭代器

2. hasNext(): 判断是否存在另一个可访问的元素

3.next(): 返回要访问的下一个元素

Set<String> set = new HashSet<>();
set.add("A");
set.add("B");
set.add("C");

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

方法2:增强型for循环

Set<String> set = new HashSet<>();
set.add("A");
set.add("B");
set.add("C");

for (String item : set) {
    System.out.println(item);
}

Set接口如何判断加入对象是否已经存在呢?

采用对象的equals()方法比较两个对象是否相等,因为存放的是对象引用(地址

HashSet是Set接口常用的实现类
Set newsTitleSet = new HashSet();

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小白深度学习入门】【2】池化层详解:工作原理、维度计算、池化类型

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

Dataworks_PySpark开发流程

PySpark是由Spark官方开发的Python语言第三方库&#xff0c;Python开发者可以通过使用python语言来编写Spark程序和SparkSQL完成开发。 之所以采用PySpark而不采用Java/Scala&#xff0c;是由于&#xff1a; Dataworks可通过将代码在线写入DataWorks Python资源的方式&#xf…

Android 12系统源码_输入系统(一)认识Android的输入系统

前言 问渠那得清如许&#xff0c;为有源头活水来。对于大多数现代操作系统中&#xff0c;“事件”就是它们的“活水源头”&#xff0c;正是在“事件和消息”的不断产生、流转和处理中&#xff0c;整个软件系统才能“动”起来。 Android系统有一套从底层Linux内核到上层应用程…

合宙LuatOS产品规格书——Air780EQ

合宙Air780EQ&#xff0c; 基于移芯EC716E高端平台&#xff0c; 集成LTE 3GPP Release 13技术&#xff0c;确保高速、稳定的网络连接&#xff1b; 广泛兼容各大运营商网络&#xff0c;实现真正的全网通设计&#xff0c;提升产品市场适应性与灵活性。 Air780EQ 4G全网通模块核…

Unity(2022.3.41LTS) - 角色控制器和3D刚体

目录 一. 角色控制 二. 3D刚体 一. 角色控制 名称&#xff1a;功能&#xff1a;坡度限制将碰撞器限制为仅爬升比指示值更陡峭&#xff08;以度为单位&#xff09;的斜坡。步长偏移只有当楼梯离地面比指示值更近时&#xff0c;角色才会爬上楼梯。此值不应大于 Character Contr…

追求全能还是专精?——AI模型的未来趋势探讨

AI模型&#xff1a;追求全能还是专精&#xff1f; 近日&#xff0c;OpenAI预计在秋季推出代号为“草莓”的新AI。从专注于数学问题到处理主观营销策略&#xff0c;"草莓"模型展现出惊人的多样性。而这种全能型 AI 是否代表了未来趋势&#xff1f;相比专攻于某一领域的…

【离线查询 滑动窗口】2747. 统计没有收到请求的服务器数目

本文涉及知识点 离线查询 C算法&#xff1a;滑动窗口总结 LeetCode2747. 统计没有收到请求的服务器数目 给你一个整数 n &#xff0c;表示服务器的总数目&#xff0c;再给你一个下标从 0 开始的 二维 整数数组 logs &#xff0c;其中 logs[i] [server_id, time] 表示 id 为…

【Kafka】Windows下安装Kafka(全面)

目录 1.前提条件 2.下载 3.安装 4.环境变量配置 5.验证 1.前提条件 1.先安装zookeeper&#xff1a; 【Zookeeper】Windows下安装Zookeeper&#xff08;全面&#xff09;-CSDN博客https://blog.csdn.net/weixin_57259781/article/details/141679454 2.还需要安装scala: …

设计模式 -- 外观模式(Facade Pattern)

1 问题引出 组建一个家庭影院 DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能&#xff0c;其过程为&#xff1a; 直接用遥控器&#xff1a;统筹各设备开关 开爆米花机&#xff0c;放下屏幕 &#xff0c;开投影仪 &#xff0c;开音响&#xf…

坐牢第三十二天(c++)

一.作业 仿照string类&#xff0c;实现myString #include <iostream> #include <cstring> // 引入cstring以使用memcpy using namespace std; class myString {char *str; // 记录c风格的字符串int size; // 记录字符串的实际长度 public:// 无参构造myString():…

循环流网络的费用问题

循环流网络的费用问题 费用为负的网络流循环流网络的费用一些题目[UVa1659 Help Little Laura](https://onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category24&pageshow_problem&problem4534)[Aizu-2230 How to Create a Good Game](https://…

[LLM][Prompt Engineering]:思维链(CoT)

思维链 思维链1. 思维链提示方法和增强策略1.1 简单的思维链提示1.2 示例形式的思维链提示1.3 思维链提示的后处理方案1.4 拓展推理结构 2. CoT的能力来源&#xff1a;为什么思维链提示能显著提升大语言模型在推理任务上的效果&#xff1f; 强大的逻辑推理是大语言模型“智能涌…

深度学习——LLM大模型分词

1. 前言 自从chatgpt出现&#xff0c;大模型的发展就进入了快车道&#xff0c;各种各样的大模型卷上天&#xff0c;作为一个在大模型时代的科研人&#xff0c;即使你不向前&#xff0c;也会被时代裹挟着向前&#xff0c;所以还是自己走快一点比较好&#xff0c;免得被后浪拍死…

呆错图床系统,一款开源免费的图床系统

源码介绍 呆错图床系统是一款免费的PHP图床程序&#xff0c;核心功能是提供图片外链服务、图床API服务、图片CDN加速与破解防盗链。 下载地址&#xff1a; https://download.csdn.net/download/huayula/89693127

基于七牛云上传,下载文件

准备工作 1.创建一个七牛云账号 2.登录账号&#xff0c;进入个人中心&#xff0c;创建一组密钥&#xff08;ak和sk&#xff09; 3. 创建一个公有的存储空间&#xff08;桶&#xff09; 注&#xff1a;存储地区的选择基于你的用户的分布主要在哪里。 七牛云直接白送10GB给我们…

给鼠标一个好看的指针特效 鼠标光标如何修改形状?

许多爱美的小伙伴们都想着如何给自己的电脑打扮一下&#xff0c;用各种各样的途径来美化我们的电脑。今天我们给大家分享一下&#xff0c;如何美化鼠标效果&#xff0c;给鼠标指针修改成一个非常好看的形状~ 一起来看几组鼠标的效果&#xff0c;小编我给大家做了个录屏&#x…

LuaJit分析(十一)去除string.dump函数

Lua脚本中的string.dump函数用于生成字节码文件&#xff0c;根据对 luajit -b命令的分析可以得出&#xff0c;最终dump出字节码文件都是使用的string.dump函数。 因此即使我们的指令顺序被打乱&#xff0c;通过loadfile系统调用&#xff0c;再通过string.dump调用&#xff0c;…

缓存解决方案。Redis 和 Amazon ElastiCache 比较

欢迎来到雲闪世界。Redis 和 Amazon ElastiCache 等缓存解决方案是通过将频繁访问的数据存储在内存中来提高应用程序性能的热门选择。让我们从实施简单性、性能、成本和维护方面对它们进行比较。 实施简单 设置 Redis 需要在基础设施或云实例上安装和配置 Redis 服务器。它可…

回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出

回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出 文章目录 前言回归预测|基于CNN-LSTM-Attention结合Adaboost集成数据预测Matlab程序 多特征输入单输出 一、CNN-LSTM-Attention-Adaboost模型**详细流程&#xff1a;****基本原理&#xf…

Golang | Leetcode Golang题解之第381题O(1)时间插入、删除和获取随机元素-允许重复

题目&#xff1a; 题解&#xff1a; type RandomizedCollection struct {idx map[int]map[int]struct{}nums []int }/** Initialize your data structure here. */ func Constructor() RandomizedCollection {return RandomizedCollection{idx: map[int]map[int]struct{}{},}…