首页 / JAVA / Java源码之Arrays
Java源码之Arrays
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java源码之Arrays,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2526字,纯文字阅读大概需要4分钟。
内容图文
![Java源码之Arrays](/upload/InfoBanner/zyjiaocheng/723/87277f7506444b549df5882b7cb5e502.jpg)
简介
Arrays主要是对数组类型操作。包括排序、查找元素、比较、复制、转化为List、获取hashCode、toString方法。
排序
-sort
1.排序后为升序
2.数组元素类型为基本类型,可以调用对应的重载方法排序
3.若数组元素类型为对象,在如下情况可以调用sort方法排序
(1) 该类实现了 Comparable接口
(2) 实现比较器接口Comparator
—>Java 中 Comparable 和 Comparator 比较
查找元素
-binarySearch
使用了二分查找对数组中的元素进行查找。
注意:
1.调用该方法前确保数组已经排好序。
2.若要查找的元素在数组中有多个,则只返回其中一个的索引。
—>Java实现二分查找
比较
-equals
结果为true的条件
1.参数都为null
2.数组长度相等且对应位置的元素相等
-deepEquals
用于比较嵌套数组
复制
-copyOf(T[] original, int newLength)
copyOf 从原数组索引为0处开始复制, 若newLength的值大于原数组长度,则以默认值填充。
int[] a = {3, 1, 2};
int[] b = Arrays.copyOf(a , 4);
System.out.println(Arrays.toString(b));// [3, 1, 2, 0]
-copyOfRange(T[] original, int from, int to)
copyOfRange 可以决定复制的区间,区间为[from, to)
int[] a = {3, 1, 2};
int[] b2 = Arrays.copyOfRange(a, 0, 2);
System.out.println(Arrays.toString(b2));// [3, 1]
将数组转化为List
-asList(T… a)
//源码
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
获取hashCode
hashCode
计算数组的哈希值
deepHashCode(Object a[])
计算数组元素为数组的哈希值。从源码可看到,该方法进行了递归调用,核心方法还是hashCode。
// 源码
public static int deepHashCode(Object a[]) {
if (a == null)
return 0;
int result = 1;
for (Object element : a) {
int elementHash = 0;
if (element instanceof Object[])
elementHash = deepHashCode((Object[]) element); //递归调用
else if (element instanceof byte[])
elementHash = hashCode((byte[]) element);
else if (element instanceof short[])
elementHash = hashCode((short[]) element);
else if (element instanceof int[])
elementHash = hashCode((int[]) element);
else if (element instanceof long[])
elementHash = hashCode((long[]) element);
else if (element instanceof char[])
elementHash = hashCode((char[]) element);
else if (element instanceof float[])
elementHash = hashCode((float[]) element);
else if (element instanceof double[])
elementHash = hashCode((double[]) element);
else if (element instanceof boolean[])
elementHash = hashCode((boolean[]) element);
else if (element != null)
elementHash = element.hashCode();
result = 31 * result + elementHash;
}
return result;
}
toString方法
-toString
-deepToString
打印嵌套数组的String形式
int[] a = {3, 1, 2};
int[] a1 = {3, 1, 2};
int[][] b1 = {a, a1};
System.out.println(Arrays.toString(a1)); // [3, 1, 2]
System.out.println(Arrays.deepToString(b1)); // [[3, 1, 2], [3, 1, 2]]
内容总结
以上是互联网集市为您收集整理的Java源码之Arrays全部内容,希望文章能够帮你解决Java源码之Arrays所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。