JavaSE——集合框架二(1/6)-前置知识-可变参数、Collections工具类

目录

可变参数

Collections工具类

Collections的常用静态方法

实例演示


可变参数

可变参数

  • 就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型...参数名称

可变参数的特点和好处

  • 特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数组给它。
  • 好处:常常用来灵活的接收数据。
import java.util.Arrays;public class ParamTest {public static void main(String[] args) {test();                     //不传数据test(10);            //传输一个数据test(10,20);         //传输多个数据test(new int[]{10,20,30});  //传输一个数组}public static void test(int...nums){//可变参数在方法内部,本质就是一个数组System.out.println(nums.length);System.out.println(Arrays.toString(nums));System.out.println("---------------------");}
}

运行结果:

可变参数的注意事项

  • 可变参数在方法内部就是一个数组
  • 一个形参列表中可变参数只能有一个
  • 可变参数必须放在形参列表的最后面

Collections工具类

  • 和Collection区分开来,Collections是一个用来操作集合的工具类。

Collections的常用静态方法

方法名称说明
public static<T> boolean addAll(Collection<? super T>c,T...elements)给集合批量添加元素
public static void shuffle(List<?> list)打乱List集合中的元素顺序
public static<T> void sort(List<T>list)对List集合中的元素进行升序排序
public static<T> void sort(List<T> list, Comparator<? super T>c)对List集合中元素,按照比较器对象指定的规则进行排序

实例演示

给集合批量添加元素、打乱List集合中的元素顺序

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CollectionsTest {public static void main(String[] args) {//1.public static<T> boolean addAll(Collection<? super T>c,T...elements)//给集合批量添加元素List<String> names = new ArrayList<>();Collections.addAll(names,"张三","王五","李四","张麻子");System.out.println(names);//2.public static void shuffle(List<?> list)//打乱List集合中的元素顺序Collections.shuffle(names);System.out.println(names);}
}

运行结果:

排序部分一

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CollectionsTest {public static void main(String[] args) {//3.public static<T> void sort(List<T>list)//对List集合中的元素进行升序排序List<Integer> list = new ArrayList<>();Collections.addAll(list,3,5,2);Collections.sort(list);System.out.println(list);}
}

运行结果:

当给对象排序时,就需要重写对象内部的compareTo方法:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class CollectionsTest {public static void main(String[] args) {List<Student> students = new ArrayList<>();students.add(new Student("至尊宝",26,165.5));students.add(new Student("蜘蛛精",23,169.7));students.add(new Student("牛魔王",22,183.5));students.add(new Student("紫霞",22,169.8));Collections.sort(students);   //自定义排序:按年龄升序排序System.out.println(students);}
}

运行结果:(输出结果重写了toString方法)

排序部分二

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;public class CollectionsTest {public static void main(String[] args) {List<Student> students = new ArrayList<>();students.add(new Student("至尊宝",26,165.5));students.add(new Student("蜘蛛精",23,169.7));students.add(new Student("牛魔王",22,183.5));students.add(new Student("紫霞",22,169.8));//4.public static<T> void sort(List<T> list, Comparator<? super T>c)//对List集合中元素,按照比较器对象指定的规则进行排序Collections.sort(students, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {return Double.compare(o1.getHeight(),o2.getHeight());}});         //如果两种自定义排序都存在,则就近使用这个排序规则System.out.println(students);}
}

运行结果:


END


学习自:黑马程序员——JavaSE课程

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

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

相关文章

SQL常用基础语句(一)-- ABCDE开头

AS 将列名从 count(*) 修改为 total select count(*) as total from users where status0 将列名 username 改为 uname&#xff0c; password 改为 upwd select username as uname, password as upwd from users BETWEEN AND 说明&#xff1a;BETWEEN 筛选的是 >value1且 &l…

小程序主体变更是通过迁移吗?是需要2个小程序吗?

小程序迁移变更主体有什么作用&#xff1f;好多朋友都想做小程序迁移变更主体&#xff0c;但是又不太清楚具体有啥用&#xff0c;今天我就来详细说说。首先&#xff0c;小程序迁移变更主体最重要的作用就是可以修改主体。比如你的小程序原来是 A 公司的&#xff0c;现在 A 公司…

并发编程笔记8--ThreadLocal结构详解

ThreadLocal&#xff0c;即线程变量&#xff0c;是一个以ThreadLocal对象为键&#xff0c;任意对象为值的存储结构。这个结构被附带在线程上&#xff0c;也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的值。可以通过set(T)方法来设置一个值&#xff0c;在…

标识符的命名规则和规范

标识符概念 Java对各种变量, 方法和类等命名时使用的字符序列称为标识符凡是自己可以起名字的地方都叫标识符 int num1 90; 标识符的命名规则(必须遵守) 由26个英文字母大小写, 0-9, _或$组成数字不可以开头. int 3ab 1;不可以使用关键字和保留字, 但能包含关键字和保留字…

操作系统实验四:多线程与信号量编程

操作系统实验上机 更多技术请访问&#xff1a;www.xuanworld.top 部分审核不通过的文章将发至个人博客&#xff1a;www.xuanworld.top 欢迎来52破解论坛阅读帖子&#xff1a;https://www.52pojie.cn/thread-1891208-1-1.html 实验名称实验序号实验日期实验人多线程与信号量…

010-Linux磁盘介绍

文章目录 1、名词 2、类型 3、尺寸 4、接口/协议/总线 5、命名 6、分区方式 MBR分区 GPT分区 1、名词 磁盘是计算机主要的存储介质&#xff0c;可以存储大量的二进制数据&#xff0c;并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘&#xff08;Floppy D…

普通测试工程师与测试开发工程师:为何年薪存在15万与30万+的差距?

普通测试工程师想要转型为测试开发工程师&#xff08;简称测开&#xff09;&#xff0c;需要学习一系列的知识和技能。以下是一些关键的学习领域&#xff1a; 编程能力&#xff1a;测试开发工程师需要具备一定的编程能力&#xff0c;能够编写自动化测试脚本和测试工具。因此&a…

基于yolov5和desnet的猫咪识别模型

前言 前段时间给学校的猫咪小程序搭建了识猫模型&#xff0c;可以通过猫咪的照片辨别出是那只猫猫&#xff0c;这里分享下具体的方案&#xff0c;先看效果图&#xff1a; 源代码在文末 模型训练 在训练服务器&#xff08;或你的个人PC&#xff09;上拉取本仓库代码。 图片数…

[力扣题解] 200. 岛屿数量

题目&#xff1a;200. 岛屿数量 思路 深度优先搜索、广度优先搜索、并查集&#xff1b; 代码 广度优先搜索 class Solution { public:int dir[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};queue<pair<int, int>> que;void bfs(vector<vector<char>&g…

10款免费黑科技软件,强烈推荐!

1.AI视频生成——巨日禄 网页版https://aitools.jurilu.com/ "巨日禄 "是一款功能强大的文本视频生成器&#xff0c;可以快速将文本内容转换成极具吸引力的视频。操作简单&#xff0c;用户只需输入文字&#xff0c;选择喜欢的样式和模板&#xff0c; “巨日禄”就会…

Day39贪心算法part06

LC738单调递增的数字&#xff08;未掌握&#xff09; 思路分析&#xff1a;一旦出现strNum[i - 1] > strNum[i]的情况&#xff08;非单调递增&#xff09;&#xff0c;首先想让strNum[i - 1]–&#xff0c;然后strNum[i]给为9字符串是不可变的&#xff0c;不可以使用s.char…

嵌入式交叉编译:OpenCV

编译ffmpeg 嵌入式交叉编译&#xff1a;ffmpeg及相关库-CSDN博客 下载 LINUX编译opencv_linux 编译opencv 模块-CSDN博客 解压编译 penCV自带编译配置&#xff0c;十分方便。 BUILD_DIR${HOME}/build_libsCROSS_NAMEaarch64-mix210-linuxFFMPEG_DIR${BUILD_DIR}/libmkdir…

树莓派学习笔记——树莓派的三种GPIO编码方式

1、板载编码&#xff08;Board pin numbering&#xff09;: 板载编码是树莓派上的一种GPIO引脚编号方式&#xff0c;它指的是按照引脚在树莓派主板上的物理位置来编号。这种方式对于初学者来说可能比较直观&#xff0c;因为它允许你直接根据引脚在板上的位置来编程。 2、BCM编…

Linux gurb2简介

文章目录 前言一、GRUB 2简介二、GRUB 2相关文件/文件夹2.1 /etc/default/grub文件2.2 /etc/grub.d/文件夹2.3 /boot/grub/grub.cfg文件 三、grubx64.efi参考资料 前言 简单来说&#xff0c;引导加载程序&#xff08;boot loader&#xff09;是计算机启动时运行的第一个软件程…

一起学习大模型 - 从底层了解Token Embeddings的原理(2)

文章目录 前言4. Token Embeddings综合运用演示4.1 Token Embeddings处理4.2 伪代码示例4.3 计算cat和dog两个词的相近程序4.3.1 计算方法4.3.2 例子4.3.3 输出结果 前言 上一篇文章了解了Token Embeddings的原理&#xff0c;这一篇&#xff0c;我们一起来综合运用学到的知识来…

纯干货分享 机器学习7大方面,30个硬核数据集

在刚刚开始学习算法的时候&#xff0c;大家有没有过这种感觉&#xff0c;最最重要的那必须是算法本身&#xff01; 其实在一定程度上忽略了数据的重要性。 而事实上一定是&#xff0c;质量高的数据集可能是最重要的&#xff01; 数据集在机器学习算法项目中具有非常关键的重…

文章解读与仿真程序复现思路——电力系统保护与控制EI\CSCD\北大核心《计及温控厌氧发酵和阶梯碳交易的农村综合能源低碳经济调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

网络域名是什么意思

网络域名&#xff0c;顾名思义&#xff0c;就是网络上的名字&#xff0c;类似于现实中的地址或姓名一样&#xff0c;用来标识网络上的一个或一组计算机或服务器的位置&#xff0c;以及它们的相应服务资源。网络域名是互联网上最基础的基础设施之一&#xff0c;是网络通信的“标…

【mysql】更新操作是如何执行的

现有一张表&#xff0c;建表语句如下&#xff1a; mysql> create table T(ID int primary key, c int);如果要将 ID2 这一行的a字段值加 1&#xff0c;SQL语句会这么写&#xff1a; mysql> update T set c c 1 where ID 2;上面这条sql执行时&#xff0c;分析器会通过词…

Nacos 微服务管理

Nacos 本教程将为您提供Nacos的基本介绍&#xff0c;并带您完成Nacos的安装、服务注册与发现、配置管理等功能。在这个过程中&#xff0c;您将学到如何使用Nacos进行微服务管理。下方是官方文档&#xff1a; Nacos官方文档 1. Nacos 简介 Nacos&#xff08;Naming and Confi…