欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > Java中常用工具类——Arrays

Java中常用工具类——Arrays

2025/2/6 6:47:12 来源:https://blog.csdn.net/MorgenChen/article/details/145455677  浏览:    关键词:Java中常用工具类——Arrays

Java中常用工具类——Arrays

Arrays

创建数组
  • copyOf 复制数组(截取方法)
  • copyOfRange复制数组(范围方法)
  • fill填充数组(将很多字段填充成相同的内容)
import java.util.Arrays;public class Main {public static void main(String[] args) {String[] name = new String[] { "王涛", "刘涛", "孙涛", "赵涛"};// copyOf复制数组(截取方法)String[] name1 = Arrays.copyOf(name, 3);String[] name2 = Arrays.copyOf(name, 5);System.out.println(Arrays.toString(name1));System.out.println(Arrays.toString(name2));// copyOfRange 复制数组(范围方法)String[] name3 = Arrays.copyOfRange(name, 3,5);String[] name4 = Arrays.copyOfRange(name, 1,4);System.out.println(Arrays.toString(name3));System.out.println(Arrays.toString(name4));// fill 填充数组(将很多字段填充成相同的内容)String[] name5 = new String[5];Arrays.fill(name5, "邓涛");System.out.println(Arrays.toString(name5));}
}

运行结果如下:

[王涛, 刘涛, 孙涛]
[王涛, 刘涛, 孙涛, 赵涛, null]
[赵涛, null]
[刘涛, 孙涛, 赵涛]
[邓涛, 邓涛, 邓涛, 邓涛, 邓涛]
比较数组

equals 判断两个数组是否相等

import java.util.Arrays;public class EqualsMain {public static void main(String[] args) {// equalsString[] name6 = new String[] {"王涛", "刘涛", "孙涛", "赵涛"};String[] name7 = Arrays.copyOf(name6, 4);String[] name8 = Arrays.copyOf(name6, 2);if (Arrays.equals(name6, name7)) {System.out.println("数组7与数组6元素完全相同!");}if (!Arrays.equals(name7, name8)) {System.out.println("数组8与数组6元素不完全相同!");}}
}

运行结果如下:

数组7与数组6元素完全相同!
数组8与数组6元素不完全相同!
数组排序

sort 对数组进行排序,按照首字母的升序进行排列的。基本数据类型是按照双轴快速排序的,引用数据类型是按照TimSort排序的,使用了Peter Mcllroy的乐观排序和信息理论复杂性中的技术

import java.util.Arrays;public class SortMain {public static void main(String[] args) {String[] name = new String[] {"wang", "chen", "xu"};String[] namecopy = Arrays.copyOf(name,3);Arrays.sort(namecopy);System.out.println(Arrays.toString(namecopy));}
}

运行结果如下:

[chen, wang, xu]
数组检索

binarySerach 二分查找,既可以精确检索,也可以模糊检索

import java.util.Arrays;public class SortMain {public static void main(String[] args) {String[] name = new String[] {"wang", "chen", "xu"};String[] namecopy = Arrays.copyOf(name,3);Arrays.sort(namecopy);System.out.println(Arrays.toString(namecopy));int exact = Arrays.binarySearch(namecopy,"xu");System.out.println(exact);int exact1 = Arrays.binarySearch(namecopy,"WANG", String::compareToIgnoreCase);System.out.println(exact1);}
}

运行结果如下:

[chen, wang, xu]
2
1
数组流转

stream 将数组转换成流,即可进行流的相关操作

import java.util.Arrays;public class StreamMain {public static void main(String[] args) {String[] info = new String[] {"today", "tomorrow", "yesterday"};System.out.println(Arrays.stream(info).count());}
}

运行结果如下:

3
打印数组

toString 因为数组是一个对象,直接打印只会打印出内存地址

import java.util.Arrays;public class ToStringMain {public static void main(String[] args) {String[] info = new String[] {"today", "tomorrow", "yesterday"};System.out.println(info);System.out.println(Arrays.toString(info));}
}

运行结果如下

[Ljava.lang.String;@1b6d3586
[today, tomorrow, yesterday
数组转化List

asList 尽管数组已经非常强大,但是它自身可以操作的工具方法很少,比如判断数组中是否包含某个数值,如果能转换成list的话,就非常简单,因为Java的集合了框架List中封装了很多常用的方法。

import java.util.Arrays;
import java.util.List;public class ListMain {public static void main(String[] args) {String[] info = new String[] {"today", "tomorrow", "yesterday"};List<String> list = Arrays.asList(info);System.out.println(list.contains("tomorrow"));}
}

运行结果如下:

true

!! 如果单纯这样转换是无法转化成真正的List,如果想对元素进行操作,可以进一步转化,转化成真正的java.util.ArrayList

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;public class ListMain {public static void main(String[] args) {String[] info = new String[] {"today", "tomorrow", "yesterday"};List<String> list = Arrays.asList(info);System.out.println(list.contains("tomorrow"));List<String> list2 = new ArrayList<>(Arrays.asList(info));list2.add("the day before yesterday");list2.remove("today");System.out.println(list2);}
}

运行结果如下:

true
[tomorrow, yesterday, the day before yesterday]
函数式编程入口
  • setAll()
  • parallelPrefix()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com