关于java数组Arrays类
2024-01-09 06:48:37
关于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进入这个类查看一下结构😀
文章来源:https://blog.csdn.net/SpringYang11/article/details/135469028
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!