Arrays

Arrays 

  • 用来操作数组的一个工具类

Arrays提供的常见方法

方法名说明
public static String toString(类型 [ ] arr)返回数组的内容

public static int [ ] copyOfRange(类型 [ ] arr,起始索引,结束索引)

拷贝数组(指定范围)
public static copyOf(类型 [ ] arr,int newLength)拷贝数组
public static setAll(double [ ] array,IntToDoubleFunction generator)把数组中的原数据改为新数据
public static void sort(类型 [ ] arr)对数组进行排序(默认是升序排序)
import java.util.Arrays;
import java.util.function.IntToDoubleFunction;public class Test {public static void main(String[] args) {// 返回数组内容int[] arr = {10,20,30,40,50,60};System.out.println(Arrays.toString(arr));// 拷贝数组,指定范围(包前不包后)int[] arr2 = Arrays.copyOfRange(arr,1,4);System.out.println(arr2);// 拷贝数组,可以指定新数组的长度int[] arr3 = Arrays.copyOf(arr,10);System.out.println(arr3);// 把数组中的新数据改为新数组又存进去double[] prices = {99.8,128,100};// 例如:把价格都打八折再存进去Arrays.setAll(prices, new IntToDoubleFunction() {@Overridepublic double applyAsDouble(int value) {return prices[value] * 0.8;}});System.out.println(Arrays.toString(prices));// 对数组进行排序(默认是升序)Arrays.sort(prices);System.out.println(Arrays.toString(prices));}
}

如果数组中存储的是对象,要如何排序

        方式一:让该对象的类实现Comparable(比较规则)接口,然后重写compareTo方法,自己来制定比较规则。

Student类 

public class Student implements Comparable<Student>{private String name;private double height;private int age;@Overridepublic int compareTo(Student o) {// 约定1:认为左边对象 大于 右边对象 返回正整数// 约定2:认为左边对象 小于 右边对象 返回负整数// 约定3:认为左边对象 等于 右边对象 一定返回0// 按年龄升序/** if(this.age > o.age){*      return 1;* }else if(this.age < o.age){*      return -1;* }*      return 0;* */return this.age - o.age;//return o.age - this.age;  降序}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", height=" + height +", age=" + age +'}';}public Student() {}public Student(String name, double height, int age) {this.name = name;this.height = height;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

Test类

import java.util.Arrays;public class Test {public static void main(String[] args) {// 目标:掌握如何对数组中的对象进行排序Student[] students = new Student[4];students[0] = new Student("张三",175.6,23);students[1] = new Student("李四",169,20);students[2] = new Student("王五",180.3,18);students[3] = new Student("赵六",165.9,25);// 对数组进行排序Arrays.sort(students);System.out.println(Arrays.toString(students));}
}

        方法二:使用下面者给sort方法,创建Compareato比较器接口的匿名内部类对象,然后自己制定比较规则。

 

import java.util.Arrays;
import java.util.Comparator;public class Test {public static void main(String[] args) {// 目标:掌握如何对数组中的对象进行排序Student[] students = new Student[4];students[0] = new Student("张三",175.6,23);students[1] = new Student("李四",169,20);students[2] = new Student("王五",180.3,18);students[3] = new Student("赵六",165.9,25);// 对数组进行排序Arrays.sort(students, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {// 约定1:认为左边对象 大于 右边对象 返回正整数// 约定2:认为左边对象 小于 右边对象 返回负整数// 约定3:认为左边对象 等于 右边对象 一定返回0// 按年龄升序/** if(o1.getHeight() > o2.getHeight()){*      return 1;* }else if(o1.getHeight() < o2.getHeight()){*      return -1;* }*      return 0;* */return Double.compare(o1.getHeight(),o2.getHeight()); //升序//return Double.compare(o1.getHeight(),o2.getHeight()); 降序}});System.out.println(Arrays.toString(students));}
}

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

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

相关文章

uniapp 使用wx.getFuzzyLocation获取当前的模糊地理位置

前言&#xff1a; 最近在进行一个小程序项目开发的时候&#xff0c;需要用到定位的功能&#xff0c;然后首先是尝试了getLocation方法&#xff0c;但是sccess中的内容始终无法打印&#xff0c;后来才知道是需要申请权限&#xff0c;在连续小程序后台管理员申请权限之后&#x…

插入排序算法

插入排序是一种简单直观的排序算法&#xff0c;其工作原理是通过构建有序序列&#xff0c;从后向前扫描&#xff0c;找到相应位置并插入。直接插入排序是插入排序的一种&#xff0c;它每次将一个待排序的记录按其关键字大小插入到前面已经排序的子序列中的适当位置&#xff0c;…

【Week-P4】CNN猴痘病识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.3 ⭐torch.utils.data.DataLoader()参数详解6.1 print()常用的三种输出格式6.2 修改网络结构6.2.1 增加池化、卷积和bn层6.2.2 增加卷积、bn、卷积、bn &#x1f368; 本文为&#x1…

Uniapp使用wx.getFuzzyLocation()方法,没有超过日调用次数,报错:“此key每日调用已达到上限”

前言&#xff1a; 最近在进行一个小程序项目开发的时候&#xff0c;使用wx.getFuzzyLocation()方法&#xff0c;没有超过日调用次数&#xff0c;但是却出现了报错&#xff1a;“此key每日调用已达到上限”。 解决方案&#xff1a; 打开腾讯位置服务 - 立足生态&#xff0c;连…

Eureka学习思维导图

一、Eureka Server原理解析 参考&#xff1a;https://www.jianshu.com/p/eb690e6ab11d 二、Eureka Client源码解析 参考&#xff1a;https://www.jianshu.com/p/6e8850387da6

odoo 客制化审批流

以BPM、OA为代表的应用平台&#xff0c;低代码处理为前提的审批流功能定制化 功能介绍&#xff1a; 业务对象&#xff1a;针对侵入式注册BPM业务场景&#xff1a;设置审批场景&#xff1a;如&#xff1a;请假大于三天的场景、金额大于1000的场景节点条件&#xff1a; 当符合某…

钡铼分布式IO在玻璃制造中的实时数据采集与监控应用介绍

导读 玻璃行业多年来一直广泛使用 PLC 来帮助管理生产过程所需的精确材料比例&#xff0c;完全依赖其PLC进行数据采集与控制&#xff0c;并且大量依靠人工来操作&#xff0c;所以这些高成本推动了对成本较低的替代方案的需求。 场景描述 某玻璃厂生产的玻璃生产包括配料段、熔…

Android App从备案到上架全过程

不知道大家注意没有,最近几年来,新的移动App想要上架是会非常困难的,并且对于个人开发者和小企业几乎是难如登天,各种备案和审核。但是到底有多难,或许只有上架过的才会有所体会。 首先是目前各大应用市场陆续推出新的声明,各种备案截止日期到12月就要到最后期限责令整改…

74HC595驱动数码管程序

数码管的驱动分静态扫描和动态扫描两种&#xff0c;使用最多的是动态扫描&#xff0c;优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多&#xff0c;其中最常见的是74HC164驱动数码管&#xff0c;这种电路一般用三极管作位选信号&#xff0c;用…

【UnityShader入门精要学习笔记】(3)章节答疑

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 复习&#xff08;阶段性总结…

《JSR303参数校验》

一、基础概述 1.简介 Java API 规范 (JSR303) 定义了 Bean 校验的标准 validation-api&#xff0c;但没有提供实现。hibernate validation 是对这个规范的实现&#xff0c;并增加了校验注解如 Email、Length 等。Spring Validation 是对 hibernate validation 的二次封装&…

linux centos 部署 jenkins

一、试了用容器部署&#xff0c;不行。(建议别用容器部署) 二、直接部署在主机上 1、安装java环境 yum install java-11-openjdk-devel # 检查 java -version # 打印 [rootiZwz9a99mctbkabkh2imhdZ init.d] java -version openjdk version "11.0.21" 2023-10-17 L…