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

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.lryc.cn/news/353553.html

相关文章:

  • 我用LLaMA-Factory微调大模型来实现商品评论情感分析,准确率高达91.70%
  • 四大进制--详解--以及进制转换规则
  • 谈谈API和人工智能领域的开发和使用以及AI大模型开发进程。
  • 用Python Pygame做的一些好玩的小游戏
  • 【吊打面试官系列】Java高并发篇 - ThreadLocal 是什么?有什么用?
  • Spring MVC的数据转换及数据格式化:java 转换器接口(将一种类型的对象转换为另一种类型及其子类对象)
  • 【开源】多语言大型语言模型的革新:百亿参数模型超越千亿参数性能
  • DDL—表—数据类型—日期时间类型相关语法
  • Ant Design pro 6.0.0 搭建使用以及相关配置
  • Vue生命周期钩子是如何实现的
  • 002 仿muduo库实现高性能服务器组件_整体框架
  • 车道线识别与预警系统LDWS(代码+教程)
  • Python基础学习笔记(七)——元组
  • 安卓开发:相机水印设置
  • Excel工作表单元格单击选中事件,VBA动态数值排序
  • 数据结构~~链式二叉树
  • 线程池,日志
  • vue的图片上传
  • 题解 P1150
  • 牛客NC324 下一个更大的数(三)【中等 双指针 Java/Go/PHP/C++】参考lintcode 52 · 下一个排列
  • Vue3解决“找不到模块“@/components/xxx.vue”或其相应的类型声明”
  • nginx的Connection refused
  • Haskell 的高阶函数(Higher-order functions)
  • Unity websocket客户端
  • 每日一题——博弈论(枚举与暴力)
  • pytorch笔记:torch.nn.Flatten()
  • 一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!
  • “等保测评与安全运维的协同:保障企业网络安宁
  • python抽取pdf中的参考文献
  • Java进阶学习笔记21——泛型概念、泛型类、泛型接口