当前位置: 首页 > news >正文

Java 可变参数 Collections 不可变集合

1. 可变参数

JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.

格式:

修饰符 返回值类型 方法名(参数类型... 形参名){ }

底层:

​ 其实就是一个数组

好处:

​ 在传递数据的时候,省的我们自己创建数组并添加元素了,JDK底层帮我们自动创建数组并添加元素了

代码演示:

public class ChangeArgs { public static void main(String[] args) { int sum = getSum(6, 7, 2, 12, 2121); System.out.println(sum); } public static int getSum(int... arr) { int sum = 0; for (int a : arr) { sum += a; } return sum; } }

注意:

​ 1.一个方法只能有一个可变参数

​ 2.如果方法中有多个参数,可变参数要放到最后

应用场景: Collections

​ 在Collections中也提供了添加一些元素方法:

public static <T> boolean addAll(Collection<T> c, T... elements):

往集合中添加一些元素

代码演示:

public class CollectionsDemo { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); //原来写法 //list.add(12); //list.add(14); //list.add(15); //list.add(1000); //采用工具类 完成 往集合中添加元素Collections.addAll(list, 5, 222, 1,2); System.out.println(list); }

2. Collections类

2.1 Collections常用功能

List/Set(Collection 体系)可用

  • java.utils.Collections是集合工具类,用来对集合进行操作。

    常用方法如下:

  • public static void shuffle(List<?> list):打乱集合顺序。

  • public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。

  • public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序。

2.2 Comparator比较器

创建一个学生类,存储到ArrayList集合中完成指定排序操作。

Student 类

public class Student{ private String name; private int age; //构造方法 //get/set //toString }

测试类:

public class Demo { public static void main(String[] args) { // 创建四个学生对象 存储到集合中 ArrayList<Student> list = new ArrayList<Student>(); ​ list.add(new Student("rose",18)); list.add(new Student("jack",16)); list.add(new Student("abc",20));Collections.sort(list, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getAge()-o2.getAge();//以学生的年龄升序 } });​ ​ for (Student student : list) { System.out.println(student); } } } Student{name='jack', age=16} Student{name='rose', age=18} Student{name='abc', age=20}
http://www.jsqmd.com/news/385245/

相关文章:

  • D.二分查找-二分答案-最小化最大值——1760. 袋子里最少数目的球
  • [git start]
  • 非结构化数据处理的容错机制设计
  • HDFS 与 MapReduce 的完美结合:大数据处理的核心技术
  • 题解:洛谷 P9389 [THUPC 2023 决赛] 烂柯杯
  • 数据科学中的图计算:Neo4j和GraphX应用解析
  • Using Jamfiles and Jambase
  • 爬虫数据清洗:Pandas 处理缺失值与异常
  • 实用指南:[linux仓库]线程池[线程玖]
  • 爬虫结果存入 MySQL:批量插入优化
  • [嵌入式系统-215]:线性电源与开关电源各自的工作原理,通俗易懂
  • nodejs+vue3的玉米病虫害远程咨询系统的 小程序
  • [嵌入式系统-214]:线性电源与开关电源
  • nodejs+vue3的社区儿童玩具交易系统
  • nodejs+vue3的社区外来人员登记管理系统 流动人口管理系统
  • nodejs+vue3的旅游民宿预定管理系统的设计与实现
  • nodejs+vue3的校园服务平台的设计与实现
  • nodejs+vue3的企业固定资产管理系统
  • nodejs+vue3的地方扶贫管理系统
  • 集体好奇心推动团队的创新驱动
  • 大数据领域Kafka的消息堆积问题解决
  • 从线性模型到S型曲线:广告投入与销售增长关系的系统建模
  • 【linux项目】2-9 k8s集群rancher界面的搭建以及本地habor镜像仓库的部署深度解析:原理、实战与踩坑记录
  • 加入L-Tester开源任务:自动化测试平台
  • nodejs+vue3的社区桶装饮用水预购管理系统的设计与实现
  • nodejs+vue3的社区电动车充电预约管理系统的设计与实现
  • 浅谈大数据领域主数据管理的重要性和价值
  • Springboot3+vue3微信小程序的计算机软考模拟系统的设计与实现
  • 2026中专大数据管理与应用专业学数据分析的技术价值分析
  • 2026大专计算机专业学生学数据分析的实用性分析