网站开发与运营方向济南网站建设哪家好
关于java数组Arrays类
前面的文章中,我们了解了数组创建方法等,我们本篇文章来了解一下数组的方法类Arrays,有了这个类,我们在日常写代码的时候就不不用自己去手动创建方法了😀。
Arrays类
- 数组的工具类java.util.Arrays
- 由于数组对象本身没有什么方法可以提供给我们调用,但是API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
- 查看JDK帮助文档🤔也可以来了解Arrays类。
- Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接用类名+点+方法名进行调用。
- 不用使用对象来调用。
Arrays常见功能
我们之前学习到的打印数组方法是这样的,自己定义一个方法,然后打印出数组中的元素。
public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};printArrays(a);}public static void printArrays(int[] array){for(int i = 0; i<array.length;i++){System.out.print(array[i]+"\t");}}
}
我们执行一下输出的结果。
1 2 3 4 5进程结束......
我们正常输出一下a。
public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};System.out.print(a);}
}
我们执行一下输出的结果,会发现输出的是对象。
[I@1b6d3586进程结束......
我们来使用Arrays输出一下。
import java.util.Arrays;//使用的时候自动生成导入的类public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};System.out.print(Arrays.toString(a));//Arrays.方法}
}
我们执行一下输出的结果。
[1,2,3,4,5]进程结束......
这种方法是,将数组转为字符串的方法,我们也可以自己去创作一下自己的方法,可以实现相同的功能。
public class Demo
{public static void main(String[] args){int[] a = {1,2,3,4,5};printArrays(a);}public static void printArrays(int[] array){for(int i = 0; i<array.length;i++){if(i==0)//如果是0,输出[{System.out.print("[");}if(i==array.length-1)//如果是最后一个输出最后一个的元素加上]{System.out.print(array[i]+"]");}else{System.out.print(array[i]+", ");//逗号间隔}}}
}
我们执行一下输出的结果,发现和上面的结果是一样的😀。
[1,2,3,4,5]进程结束......
但是我们要避免自己创建重复的方法,因为这个方法是开发的时候开发者编写的,所以我们没有必要去重复编写相同功能的代码,直接拿过来用就可以了,这里只是让大家了解一下我们也可以自己模仿创建方法。
我们来看一下toString这个方法,开发者是如何编写的🤔
按住Ctrl键,然后点击toString就可以跳转到源码页面。
public static String toString(int[] a) {if (a == null)return "null";int iMax = a.length - 1;if (iMax == -1)return "[]";StringBuilder b = new StringBuilder();b.append('[');for (int i = 0; ; i++) {b.append(a[i]);if (i == iMax)return b.append(']').toString();b.append(", ");}}
我们可以看到底层的代码是这个样子的,当然很多东西对于我们现在来说比较陌生,我们往后会一点点去深入这些方法具体的实现逻辑😀但是和我们刚刚自己写的代码原理是比较相似的。
我们重新定义一个数组,然后用排序的方法实现排序。
import java.util.Arrays;public class Demo
{public static void main(String[] args){int[] a = {1,88,3,66,5};Arrays.sort(a);}
}
我们执行一下输出的结果,可以看到数组已经排序完成了,这比我们之前写的反转数组的方法要简单许多😀。
反转数组
[1,3,5,66,88]进程结束.......
我们可以看一下这个方法的源码。
public static void sort(int[] a) {DualPivotQuicksort.sort(a, 0, a.length - 1, null, 0, 0);}
这里一样也是不需要看懂,就是简单了解一下就好。
public class Demo
{public static void main(String[] args){int[] a = {10,20,30,40,50};Arrays.fill(a,2,4,0);//将2和4中间的数替换为0 2和4代表下标,不是数字2和4}
}
我们执行一下输出的结果。
[10, 20, 0, 0, 50]进程结束.......
我们可以看一下这个方法的源码。
public static void fill(int[] a, int fromIndex, int toIndex, int val){rangeCheck(a.length, fromIndex, toIndex);//fromIndex是从哪个索引开始 toIndex是到哪个索引结束for (int i = fromIndex; i < toIndex; i++)a[i] = val;}
以上就是常见的Arrays类中的方法,当然还有很多很多方法,大家可以看一下JDK帮助文档,或者Idea进入这个类查看一下结构😀