深圳幻海软件技术有限公司 欢迎您!

Java中Arrays类中的数组操作方法详解

2023-03-31

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🥇博主昵称:Jovy. 🍟博客主页:Jovy.的博客🥗感谢点赞👍评论🃌⚇很方便的在线编辑器:Lightly目录今日焦点前言Arrays类Arrays类的fill方法用fill方法填充数组用fill方法替换数组元素Arra

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥇博主昵称Jovy. 

🍟博客主页:Jovy.的博客

🥗感谢点赞👍评论🃌

⚇很方便的在线编辑器:Lightly

目录

今日焦点

前言

Arrays类

Arrays类的fill方法

用fill方法填充数组

用fill方法替换数组元素

Arrays类的复制数组方法

用copyOf复制数组

用copyOfRange方法复制部分数组

Arrays类对数组进行排序

用sort方法进行升序排序

问题解答


今日焦点

🎫比尔盖茨发文庆祝万维网诞生30周年

比尔·盖茨称“当数字革命刚开始起步时,我为自己还是个年轻人而感到庆幸,于是我和我的微软同事有机会帮助了这场革命的形成。庆祝万维网诞生30周年,令我怀念起1995年。在那一年,我们推出了IE浏览器。

前言

🏵在前面我们讲到了一维数组和二维数组以及开发工具eclipse的配置

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 替换元素以及填充元素:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

Arrays类

🎖Arrays类是Java中用来操作数组的模块他的使用方法是在Java类中使用import java.util.Arrays进行导入,并使用Arrays.方法()进行调用方法!

Arrays类的fill方法

🎟fill方法有两种用途!

第一种就是填充数组,将数组中的全部元素转换为所输入的元素

第二种就是替换数组元素,将数组中某个元素进行单个替换

用fill方法填充数组

🌋在初始化一个数组之后,如果没有给数组的元素赋值,那么这个数组中的元素默认是为0的,那么我们一个个进行赋值又会略显麻烦,会堆积代码!所以我们就需要用到fill方法进行填充,但是这么做会让全部元素变成同一个数值!

  1. import java.util.Arrays; //这里导入Arrays类
  2. public class Fill{
  3. public static void main(String[] args){
  4. int[] mylist = new int[5]; //这里创建一个名称为mylist的数组,数组的元素个个数为5
  5. Arrays.fill(mylist,3); //为数组填充3,格式为fill(列表,数值)
  6. for(int x:mylist){
  7. System.out.println(x);
  8. } //通过for each来遍历数组元素
  9. }
  10. }

上面的for each在以前的文章中介绍过!

用fill方法替换数组元素

🏜在给元素赋值完或者是填充完元素之后,如果想对某个元素进行修改,那么我们就要重新赋值或者是替换元素,但是重新赋值会增加代码,让代码显得更繁琐,所以Arrays类中提供了替换元素的方法fill!

  1. import java.util.Arrays;
  2. public class Fill{
  3. public static void main(String[] args){
  4. int[] mylist = {1,2,3,4};
  5. Arrays.fill(mylist, 1,2,4);
  6. for(int x:mylist){
  7. System.out.println(x);
  8. }
  9. } //这是一个特殊的格式Arrays.fill(列表名称,空格正向索引,反向索引,改变的数值)
  10. }

🎬这里的正反向索引指向的一定要是同一个元素! 

Arrays类的复制数组方法

🎟在Java程序的使用过程中,有时候会需要一个含有相同或者是部分相同元素的数组,但是重新创建数组的话就会增加代码长度,减少代码可读性,那么我们就可以使用到复制数组或者是部分数组的方法!

用copyOf复制数组

☄️copyOf方法提供了多种重载的方法用以复制数组,增加代码可读性。该方法不受数组长度的限制,若超出,则多处部分为0!

  1. import java.util.Arrays;
  2. public class Fill{
  3. public static void main(String[] args){
  4. int[] mylist = {1,2,3,4};
  5. int[] justlist = Arrays.copyOf(mylist,4); //将复制后的数组赋值给justlist
  6. //格式Arrays.copyOf(列表,复制后的长度)
  7. for(int x:justlist){
  8. System.out.println(x);
  9. }
  10. System.out.println(mylist);
  11. System.out.println(justlist); //这里输出两个数组的内存空间进行检查
  12. }
  13. //这是一个特殊的格式Arrays.fill(列表名称,空格正向索引,反向索引,改变的数值)
  14. }

 解:从以上结果可以看出赋值成功了,并且内存空间不同下面我会解释为什么要输出内存空间

用copyOfRange方法复制部分数组

🎗有时候在编辑代码的时候只需要中间一部分代码,但是copyOf方法只能复制以前面部分为开头的元素,而不能直接复制中间的代码,为了解决这一个问题,这个类提供了另一个方法copyOfRange方法(中文意思:选择复制)利用这个方法就可以解决这一个问题

  1. import java.util.Arrays;
  2. public class Fill{
  3. public static void main(String[] args){
  4. int[] mylist = {1,2,3,4};
  5. int[] justlist = Arrays.copyOfRange(mylist,1,3);
  6. //Arrays类的方法使用形式Arrays.copyOfRange(列表,第一个索引位置,第二个索引位置)
  7. for(int x:justlist){
  8. System.out.println(x);
  9. }
  10. }
  11. }

注:在末尾有问题解答!

Arrays类对数组进行排序

🎟在代码编译过程中,有时候会需要用到有序的一组数组才能进行更好的操作,但是我们重新进行编译会增加代码数量,所以我们要对代码进行排序,Java中提供了sort方法对数组的元素进行升序排序!

用sort方法进行升序排序

🎬在Java编译过程中,有顺序的数组会让你的编译更加方便,使得你自己以及其他参与编译的人更加清楚,尤其是适合那些大基数的数组更为适用和实用

  1. import java.util.Arrays;
  2. public class Fill{
  3. public static void main(String[] args){
  4. int[] mylist = {1,7,33,4};
  5. Arrays.sort(mylist);
  6. //方式为Arrays.sort(列表)
  7. for(int x:mylist){
  8. System.out.println(x);
  9. }
  10. }
  11. }

问题解答

  • 为什么要在fill方法中加空格:因为不加空格就会使他执行不正确,无法达到效果
  • 为什么要输出内存空间吗:如果在同一个内存空间,一个数组改变之后另一个也会随之改变,会影响后续程序执行
  • copyOfRange方法如果超出索引最大限度会怎么样:如果超出,则超出部分默认为0!
  • 为什么有些要方法要创建新数组有些不用:因为有些方法是对一个数组进行改变,有些是要重新创建数组!
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览42577 人正在系统学习中
合作交流,友好交友!
微信名片