java容器常用方法、自定义排序

List

本质上是一个容器,用来存储数据。

因为其为一个接口,故我们不能直接new。

而List常用的实现类为ArrayList和LinkedList.

ArrayList底层:数组

LinkedList底层:链表

常用方法:

  • add(元素):新增一个元素;
  • add(下标,元素):在指定下标插入元素;
  • size():获取当前元素个数;
  • get(下标):获取指定下标的元素;
  • remove(下标):移除指定下标的元素;
  • contains(元素):查询容器是否包含指定元素;

遍历:(for循环遍历就不写了)

Iterator it=list.iterator();
while(it.hasNext()){System.out.println(it.next());
}

自定义排序

//先在类中写好排序方式,方法使用的是冒泡排序
class T implements Comparable<T>{public int t;public T(int t){this.t = t;}@Overridepublic int compareTo(T o) {//返回正数:换位置//返回负数:不换位置//返回0:表示相等return o.t-t;}
}
//
public static void main(String[] args) {List<T> list = new ArrayList<>();list.add(new T(5));list.add(new T(3));list.add(new T(4));
//通过调用Collections方法进行排序Collections.sort(list);for(T t:list)System.out.println(t.t);}

Set

将元素默认按从小到大进行排序,元素唯一。

常用实现类有HashSet。

HashSet底层:Hash表。

常用方法:

  • add(元素)::插入一个元素;
  • size():获取元素个数;
  • remove(元素):移除该元素;
  • contains(元素):查询是否包含该元素;

遍历:

        for(int i=0;i<set.size();i++){System.out.println(set.toArray()[i]);}

        for(int t:set){System.out.println(t);}

 自动排序容器如何自定义排序方法

//创建一个类继承Comparable接口
class T implements Comparable<T>{public int id;public T(int id) {this.id = id;}//重写该类的排序规则@Overridepublic int compareTo(T o) {return o.id-this.id;}
}
public static void main(String[] args) {
Set<T> set=new HashSet<T>();set.add(new T(1));set.add(new T(3));set.add(new T(2));//如何获取?//获取是一个对象,需要进行强转!!!T o = (T)set.toArray()[0];System.out.println(o.id);
}

Map

元素是成对存在的,每个元素由键与值两部分组成,通过键可以找对所对应的值。

常用为HashMap,底层为数组+链表or数组+红黑树。

常用方法:

  • put(key,value):存放一个数据;
  • get(key):通过key获取其value(若无返回null);
  • remove(key):通过key移除该键值对;

遍历方式:

//获取key集合,再遍历获取value       HashMap<String, Integer> map = new HashMap<>();map.put("A", 1);map.put("B", 2);map.put("C", 3);Set<String> strings = map.keySet();for (String s : strings) {System.out.println(s+" "+map.get(s));}

方式二

//通过增强for遍历      HashMap<String, Integer> map = new HashMap<>();map.put("A", 1);map.put("B", 2);map.put("C", 3);for(Map.Entry<String, Integer> entry:map.entrySet()){System.out.println(entry.getKey() + " " + entry.getValue());}

感谢观看———

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

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

相关文章

找出 cs 数据库中的大表并将它们的数据减少到 500 条

要找出 cs 数据库中的大表并将它们的数据减少到 500 条&#xff0c;可以按照以下步骤进行&#xff1a; 识别大表&#xff1a;首先列出数据量大于 1MB 的表为每个大表生成并执行保留前 500 条记录的 SQL 语句 以下是一些常用数据库的示例&#xff1a; MySQL 列出数据量大于 1…

[HBM] HBM TSV (Through Silicon Via) 结构与工艺

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解DDR》 全文 3300 字。 1 概念 1.1 什么是HBM TSV 使用 TSV 堆叠多个DDR DRAM成为一块HBM, 成倍提高了存储器位宽&#xff0c; 一条位宽相当于高速公路的一条车道&#xff0c; 车道越多&#xff…

期末考试后班主任如何发布学生成绩?

期末考试成绩一出&#xff0c;家长们便急切地想要了解孩子的学习情况。以往&#xff0c;老师们需要一个个私信家长&#xff0c;将成绩单发送出去&#xff0c;这项工作既繁琐又耗时。期末之际&#xff0c;老师们的工作本就繁重&#xff0c;如何有效减轻他们的负担&#xff0c;让…

Prompting已死?DSPy:自动优化LLM流水线

在 LLM 应用中&#xff0c;如何优化一个 pipeline 的流程一直是一个比较头疼的问题。提示词作为一个预定义字符串&#xff0c;往往也没有很好地优化方向。本文中的 DSPy 框架或许能在实际应用中对效果优化起到一定帮助。 当前&#xff0c;在 LLM 的应用中&#xff0c;大家都在探…

AI在音乐创作中的角色:创造还是毁灭?

目录 一、基本情况介绍 二、近期新闻 三、AI生成音乐方面的商业模式 四、人工智能和音乐人可能的合作模式 五、人们如何借助AI来创作音乐 六、人工智能在创意产业引发的伦理道德问题 七、如何平衡技术发展与提高人类创造积极性的关系&#xff1f; 总结 一、基本情况介绍…

Hugging Face Accelerate 两个后端的故事:FSDP 与 DeepSpeed

社区中有两个流行的零冗余优化器 (Zero Redundancy Optimizer&#xff0c;ZeRO)算法实现&#xff0c;一个来自DeepSpeed&#xff0c;另一个来自PyTorch。Hugging FaceAccelerate对这两者都进行了集成并通过接口暴露出来&#xff0c;以供最终用户在训练/微调模型时自主选择其中之…

EI CCIE学习笔记-SDAccess之一:SDAccess解决方案

Chapter 1 SD-Access Solution Proposal 1.1 概念引入 SDN三要素&#xff1a;集中控制、转控分离、可编程 DNA DNA:Digital Network Architecture数字网络架构 思科提出的跨园区&#xff0c;分支机构&#xff0c;WAN和扩展企业的企业网络架构它提供了一种开放&#xff0c;可扩…

C++操作系列(二):VSCode安装和配置C++开发环境

1. VSCode下载 进入VSCode的官网网页&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 下载相应的版本&#xff1a; 2. 安装VSCode 安装到指定位置&#xff1a; 一路下一步&#xff0c;直至安装完成&#xff1a; 3. 安装C插件 3.1. 安装C/C 点击扩展图标&…

微软有哪些大模型Copilot应用?

微软推出了多款基于大模型的Copilot应用&#xff0c;这些应用利用人工智能和自然语言处理技术&#xff0c;旨在提升用户在不同领域的生产力和效率。以下是一些主要的Copilot应用&#xff1a; 1、Microsoft 365 Copilot&#xff1a;集成于Word、Excel、PowerPoint、Outlook和Te…

从头开始构建一个小规模的文生视频模型

OpenAI 的 Sora、Stability AI 的 Stable Video Diffusion 以及许多其他已经发布或未来将出现的文本生成视频模型&#xff0c;是继大语言模型 (LLM) 之后 2024 年最流行的 AI 趋势之一。 在这篇博客中&#xff0c;作者将展示如何将从头开始构建一个小规模的文本生成视频模型&a…

C语言力扣刷题1——最长回文字串[双指针]

力扣算题1——最长回文字串[双指针] 一、博客声明二、题目描述三、解题思路1、思路说明2、知识补充a、malloc动态内存分配b、free释放内存c、strlen求字符数组长度d、strncpy函数 四、解题代码&#xff08;附注释&#xff09; 一、博客声明 找工作逃不过刷题&#xff0c;为了更…

Docker配置远程连接

前置条件&#xff1a;docker所在的服务器开放2375端口 文件&#xff1a;/usr/lib/systemd/system/docker.service 节点ExecStart 追加 -H tcp://0.0.0.0:2375

智慧校园变革之路:全平台综合概述与最佳实践

在当今信息化浪潮的推动下&#xff0c;"智慧校园"作为教育创新的前沿阵地&#xff0c;正逐步揭开其神秘面纱&#xff0c;引领一场前所未有的教育转型革命。它远超过单纯技术叠加的传统框架&#xff0c;而是深度融合云计算、大数据、物联网等前沿科技&#xff0c;精心…

【计算机毕业设计】基于Springboot的智能物流管理系统【源码+lw+部署文档】

包含论文源码的压缩包较大&#xff0c;请私信或者加我的绿色小软件获取 免责声明&#xff1a;资料部分来源于合法的互联网渠道收集和整理&#xff0c;部分自己学习积累成果&#xff0c;供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

【Mac】Auto Mouse Click for Mac(高效、稳定的鼠标连点器软件)软件介绍

软件介绍 Auto Mouse Click for Mac 是一款专为 macOS 平台设计的自动鼠标点击软件&#xff0c;它可以帮助用户自动化重复的鼠标点击操作&#xff0c;从而提高工作效率。以下是这款软件的主要特点和功能&#xff1a; 1.自动化点击操作&#xff1a;Auto Mouse Click 允许用户录…

等保测评过程中会用到哪些工具或服务

等保测评工具和服务概述 等保测评&#xff0c;即信息安全等级保护测评&#xff0c;是一项重要的信息安全工作&#xff0c;它涉及信息系统的技术和管理两个方面&#xff0c;包括物理安全、网络安全、主机安全、应用安全、数据安全等多个维度。等保测评工具和服务是企业进行信息…

神经网络实战2-损失函数和反向传播

其实就是通过求偏导的方式&#xff0c;求出各个权重大小 loss函数是找最小值的&#xff0c;要求导&#xff0c;在计算机里面计算导数是倒着来的&#xff0c;所以叫反向传播。 import torch from torch.nn import L1Lossinputstorch.tensor([1,2,3],dtypetorch.float32) targe…

使用Llama3/Qwen2等开源大模型,部署团队私有化Code Copilot和使用教程

目前市面上有不少基于大模型的 Code Copilot 产品&#xff0c;部分产品对于个人开发者来说可免费使用&#xff0c;比如阿里的通义灵码、百度的文心快码等。这些免费的产品均通过 API 的方式提供服务&#xff0c;因此调用时均必须联网、同时需要把代码、提示词等内容作为 API 的…

面了英伟达算法岗,被疯狂拷打。。。

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接如…

Python逻辑控制语句 之 循环语句--for循环

1.for 的介绍 for 循环 也称为是 for 遍历, 也可以做指定次数的循环遍历: 是从容器中将数据逐个取出的过程.容器: 字符串/列表/元组/字典 2.for 的语法 &#xff08;1&#xff09;for 循环遍历字符串 for 变量 in 字符串: 重复执⾏的代码 字符串中存在多少个字符, 代码就执行…