Java:Arrays类的API

news2024/11/27 1:20:49

Arrays

在这里插入图片描述

// 1、public static string toString(类型[] arr):返回数组的内容
int[] arr = {10,20,30,40,50,60};
system.out.println(Arrays.tostring(arr));//[10,20,30,40,50,60]

// 2、public static类型[] copyOfRange(类型[] arr,起始索引,结束索引)﹔拷贝数组(指定范围,包前不包后)
int[] arr2 = Arrays.copyOfRange(arr,from:1,to:4);
system.out.println(Arrays.toString(arr2));//[20,30,40]

// 3、public static copyOf(类型[] arr, int newLength):拷贝数组,可以指定新数组的长度。
int[] arr3 = Arrays.copyOf(arr,newLength:10);//如果新定义的数组长度大于开始的数组,则会在数组后面补0;如果新定义的数组长度小于一开始的数组长度,那么后面的数据将会删掉。
system.out.println(Arrays.toString(arr3));[10,20,30,40,50,60,0,0,0,0]

int[] arr4 = Arrays.copyOf(arr,newLength:3);//如果新定义的数组长度小于一开始的数组长度,那么后面的数据将会删掉。
system.out.println(Arrays.toString(arr4));[10,20,30]

//4、public static setAll( double[] array,IntToDoubleFunction generator):把数组中的原数据改为新数据又存进去。
double[] prices = {99.8,128,100};

//把所有的价格都打八折,然后又存进去。
Arrays.setAll(prices,new IntToDoubleFunction() {
	@Override
	public double applyAsDouble(int value) {
	// value = 0   1   2
	return prices[value] * 0.8;
	}
});
system.out.println (Arrays.toString(prices));//[79.84,102.4,80.0]


// 5、public static voidsort(类型[] arr):对数组进行排序(默认是升序排序)
Arrays.sort(prices);
System.out.println(Arrays.toString(prices));//[79.84,80.0,102.4]


以上都是直接用数据进行排序,那么对象怎么进行排序呢

在这里插入图片描述

方式一

首先先创建一个学生类

public class Student implements Comparable<Student> {
    private String name;
    private double height;
    private int age;

    //制定比较规则
    //此时是拿对象来比较
    //this 与 o
    @Override
    public 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;降序
    }

   
//重写toString 字符串方法,如果不重写,结果是一串地址
@Override
    public 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;
    }
}

在测试类中进行测试

  Student[] students =new Student[4];
        students[0] = new Student("111",167,24);
        students[1] = new Student("222",168,23);
        students[2] = new Student("333",175,25);
        students[3] = new Student("444",185,26);

        //1.public static void sort(类型[] arr): 对数组进行排序
        Arrays.sort(students);
        System.out.println(Arrays.toString(students));

在这里插入图片描述

方式二:

此时如果比较身高的话,不能直接用上面的减 ,因为身高是浮点型,返回值类型是int,如果两个人身高相差0.1的话就会出现相等的情况,所以要用浮点型。。。其他的代码和上面是一样的

在这里插入图片描述

主要是用了匿名类的构造器

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

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

相关文章

U 盘安装 Windows 10/11 时找不到磁盘驱动器的解决方法

1. 问题 使用 U盘安装 Windows10/11 的时候到选择安装位置时发现列表是空的无法选择任何驱动器。 2. 解决方法 (1) 点击下载安装 Intel Rapid Storage Technology (IRST) 驱动程序&#xff1b; (2) 在 U盘启动盘中创建名为 driver 的文件夹&#xff1b; (3) 将下载好的驱…

冠达管理:次新股为什么不能碰?

在出资过程中许多人都期望能够找到一种愈加快速、高效地赚取金钱的办法&#xff0c;这使得不少人瞄准了次新股。但是&#xff0c;次新股终究是什么&#xff0c;为何有人提醒咱们不要去碰它们呢&#xff1f; 一、什么是次新股&#xff1f; 所谓次新股&#xff0c;指的是上市时刻…

编译JSqlParser4.6-4.7最新源代码

通过https://github.com/JSQLParser/JSqlParser 下载最新的JSqlParser4.6-4.7的源代码&#xff0c;maven导入后出现下面问题 没有找到相应的源代码&#xff0c;原来这部分代码是这个下面 是jjt后缀的文件&#xff0c;原来JSQLParser源码中SQL解析那部分是使用JAVACC来生成的&a…

【LeetCode】地下城游戏(动态规划)

地下城游戏 题目描述算法分析编程代码 链接: 地下城游戏 题目描述 算法分析 编程代码 class Solution { public:int calculateMinimumHP(vector<vector<int>>& dungeon) {int m dungeon.size();int n dungeon[0].size();vector<vector<int>> d…

Flutter 文件上传(七牛云)简单封装

前言&#xff1a;记录了七牛云上传图片的简单封装、若有不足 欢迎指正。 开始前准备&#xff1a; A、七牛sdk版本一定要和dart版本相对应&#xff08;推荐用any方式、让其自己去匹配&#xff09;&#xff1b; qiniu_flutter_sdk: any B、七牛上传文件所需的参数&#xff1a; …

谈谈python编程语言

目录 1.什么是python 2.python的发展历史 3.python的具体应用领域 4.就业前景 1.什么是python Python是一种高级编程语言&#xff0c;它具有简单易学、可读性强和功能丰富的特点。Python由Guido van Rossum于1991年开发&#xff0c;并成为一种通用的编程语言。 以下是一些Py…

蓝队的自我修养之如何从流量中检测 WebShell

HW期间&#xff0c;为防范钓鱼&#xff0c;即日起FreeBuf将取消投稿文章的一切外部链接。给您带来的不便&#xff0c;敬请谅解~ 背景 众所周知&#xff0c;攻防演练过程中&#xff0c;攻击队入侵企业网站时&#xff0c;通常要通过各种方式获取 webshell&#xff0c;从而获得企…

unity TextMeshPro 富文本

<b>粗体标签</b> <i>斜体标签</i> <u>下划线标签</u> <s>删除线标签</s> <sup>上标标签</sup>前面后边上标签 5<sup>。</sup>C <sub>下标标签&#xff0c;如&#xff1a;</sub>H<sub&…

JS进阶-Day2

&#x1f954;&#xff1a;万物皆有裂痕&#xff0c;那是光照进来的地方 JS进阶-Day1——点击此处&#xff08;作用域、函数、解构赋值等&#xff09; JS 进阶 - Day2 深入对象构造函数&#xff08;⭐&#xff09;面试小题&#xff1a; 实例成员静态成员&#xff08;⭐&#xf…

微信小程序nodejs+vue+uniapp高校食堂线上预约点餐系统

本次设计任务是要设计一个食堂线上预约点餐系统&#xff0c;通过这个系统能够满足管理员及学生的食堂线上预约点餐分享功能。系统的主要包括首页、个人中心、学生管理、菜品分类管理、菜品管理、关于我们管理、意见反馈、系统管理、订单管理等功能。 开发语言 node.js 框架&am…

【Opencv入门到项目实战】(二):图像阈值与平滑处理

文章目录 1.图像阈值处理1.1简单阈值处理&#xff08;Simple Thresholding&#xff09;1.2自适应阈值处理&#xff08;Adaptive Thresholding&#xff09;1.3Otsus阈值处理 2.平滑处理1.1均值滤波&#xff08;Mean Filter&#xff09;1.2高斯滤波&#xff08;Gaussian Filter&a…

FPGA纯verilog实现Gzip数据压缩deflate算法,提供工程源码和技术支持

目录 1、前言2、我这儿已有的FPGA压缩算法方案3、FPGA Gzip数据压缩功能和性能4、FPGA Gzip数据压缩设计方案输入输出接口描述数据处理流程LZ77压缩器哈夫曼编码输出缓存 数据输出说明特殊说明 5、vivado仿真6、vivado工程7、上板调试验证FPGA开发板测试本zip算法对比于评估 8、…

【JDK版本差异】Optional.requireNonNullElseGet在JAVA8中的替代表述

Objects.requireNonNullElseGet 是 Java 9 引入的方法&#xff0c;不在 Java 8 中可用。但是&#xff0c; 可以使用 Java 8 的一些功能来模拟类似的效果。 快速查阅 JDK9以上表述&#xff1a; this.principalFactory Objects.requireNonNullElseGet(principalFactory, Defau…

如何测出 Scratch 的指令反应时间

相信看了标题&#xff0c;你一定会很吃惊&#xff0c;你会觉得scratch不是没有反应时间吗&#xff1f; 但其实不是&#xff0c;这也是我偶然间发现的&#xff0c;这期的内容较少&#xff0c;对你的技术涨幅很小&#xff0c;但可以当作娱乐来看 其实就7个代码&#xff0c;但看着…

(自控原理)线性系统的时域分析法

目录 一、系统时间响应的性能指标 1、典型输入信号 2、动态性能与稳态性能 二、一阶系统的时域分析 1、一阶系统的数学模型 2、一阶系统的单位阶跃响应 三、二阶系统的时域分析 1、二阶系统的数学模型 2、二阶系统的单位阶跃响应 3、欠阻尼二阶系统的动态过程分析 4…

redis原理 5:同舟共济 —— 事务

为了确保连续多个操作的原子性&#xff0c;一个成熟的数据库通常都会有事务支持&#xff0c;Redis 也不例外。Redis 的事务使用非常简单&#xff0c;不同于关系数据库&#xff0c;我们无须理解那么多复杂的事务模型&#xff0c;就可以直接使用。不过也正是因为这种简单性&#…

国内版ChatGPT平替

想体验的朋友可以去微信搜索小程序 “ robot buddy ”

2024年杭州电子科技大学MEM项目招生信息全面了解

2024年全国管理类硕士联考备考已经到了最火热的阶段&#xff0c;不少考生开始持续将注意力集中在备考的规划中&#xff01;杭州达立易考教育整合浙江省内的MEM目信息&#xff0c;为大家详细梳理了相关报考参考内容&#xff0c;方便大家更好完成择校以及针对性的备考工作。本期为…

【Spring Boot】Thymeleaf模板引擎 — Thymeleaf表达式

Thymeleaf表达式 本节介绍Thymeleaf的各种表达式&#xff0c;通过一些简单的例子来演示Thymeleaf的表达式及用法。 1.变量表达式 变量表达式即获取后台变量的表达式。使用${}获取变量的值&#xff0c;例如&#xff1a; <p th:text"${name}">hello</p>…

Windows Server 2012 R2 安装 Oracle RAC 11g R2

Windows Server 2012 R2 安装 Oracle RAC 11g R2 环境准备安装系统设置虚拟网络配置虚拟机网卡开机进行系统配置关闭防火墙设置网络系统高级设置修改注册表修改计算机名称设置账户控制RAC1 和 RAC2 的磁盘共享修改 hosts同步时间在 RAC1 RAC2 DATA 中安装 .net3.5在 DATA 中搭建…