1.System.arraycopy();
复制数组,比直接for循环复制要快很多.
很多JAVA集合(如List)都会用到此方法扩展容量,性能很高。
int[] i1 = new int[]{1,2,3,4,5,6,7,8,9,10}; int[] i2 = new int[10]; Arrays.fill(i2, 33); //System.arraycopy(资源数组,资源数组位置,目标数组,目标数组位置 , 复制长度); //目标数组会改变 System.arraycopy(i1, 3, i2, 3, 5); System.out.println(Arrays.toString(i2)); //[33, 33, 33, 4, 5, 6, 7, 8, 33, 33]
2.java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:
对数组赋值(对数组中每个元素都赋予相同的值):通过fill方法。
对数组排序:通过sort方法,默认升序。
比较数组:通过equals方法比较数组中元素值是否相等。
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
数组转为字符串:Arrays.toString()方法,可以把各种类型转为字符串,如果是自己定义的实体对象数组就要自己先写好实体类toString()方法.
复制数组:底层实现就是用System.arraycopy();方法,复制其它数组成新数组。
import java.util.Arrays; import java.util.Comparator; public class ArraysTest { public static void output(int[] array) { if (array != null) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } } System.out.println(); } public static void main(String[] args) { int[] array = new int[5]; // 填充数组 Arrays.fill(array, 5); System.out.println("填充数组:Arrays.fill(array, 5):"); ArraysTest.output(array); // 将数组的第2和第3个元素赋值为8 Arrays.fill(array, 2, 4, 8); System.out.println("将数组的第2和第3个元素赋值为8:Arrays.fill(array, 2, 4, 8):"); ArraysTest.output(array); int[] array1 = { 7, 8, 3, 2, 12, 6, 3, 5, 4 }; // 对数组的第2个到第6个进行排序进行排序 Arrays.sort(array1, 2, 7); System.out.println("对数组的第2个到第6个元素进行排序进行排序:Arrays.sort(array,2,7):"); ArraysTest.output(array1); // 对整个数组进行排序 Arrays.sort(array1); System.out.println("对整个数组进行排序:Arrays.sort(array1):"); ArraysTest.output(array1); // 使用Comparator对数组排序(一般用自定义对象的数组) Person[] ps = new Person[] { new Person("hhm", 15), new Person("DDD", 25), new Person("BBB", 18), new Person("CCC", 20) }; Arrays.sort(ps, new Comparator<Person>() { public int compare(Person o1, Person o2) { // o2.getAge() - o1.getAge();为降序 // 根据"年龄"升序 return o1.getAge() - o2.getAge(); } }); System.out.println("自定义实体对象数组排序 ::"+Arrays.toString(ps)); // 比较数组元素是否相等 System.out.println("比较数组元素是否相等:Arrays.equals(array, array1):" + "\n" + Arrays.equals(array, array1)); int[] array2 = array1.clone(); System.out.println("克隆后数组元素是否相等:Arrays.equals(array1, array2):" + "\n" + Arrays.equals(array1, array2)); // 使用二分搜索算法查找指定元素所在的下标(必须是排序好的,否则结果不正确) Arrays.sort(array1); System.out.println("元素3在array1中的位置:Arrays.binarySearch(array1, 3):" + "\n" + Arrays.binarySearch(array1, 3)); // 如果不存在就返回负数 System.out.println("元素9在array1中的位置:Arrays.binarySearch(array1, 9):" + "\n" + Arrays.binarySearch(array1, 9)); //复制array1的前4位数字组成新数组 int[] newInts = Arrays.copyOf(array1, 4); System.out.println("复制数组 :"+Arrays.toString(newInts)); //复制array1中下标位2至5的位置成新数组 newInts = Arrays.copyOfRange(array1, 2, 5); System.out.println("复制数组 :"+Arrays.toString(newInts)); } } class Person { private String name; private int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
输出结果:
填充数组:Arrays.fill(array, 5):
5 5 5 5 5
将数组的第2和第3个元素赋值为8:Arrays.fill(array, 2, 4, 8):
5 5 8 8 5
对数组的第2个到第6个元素进行排序进行排序:Arrays.sort(array,2,7):
7 8 2 3 3 6 12 5 4
对整个数组进行排序:Arrays.sort(array1):
2 3 3 4 5 6 7 8 12
[Person [name=hhm, age=15], Person [name=BBB, age=18], Person [name=CCC, age=20], Person [name=DDD, age=25]]
比较数组元素是否相等:Arrays.equals(array, array1):
false
克隆后数组元素是否相等:Arrays.equals(array1, array2):
true
元素3在array1中的位置:Arrays.binarySearch(array1, 3):
1
元素9在array1中的位置:Arrays.binarySearch(array1, 9):
-9
相关推荐
在Java编程语言中,Arrays工具类是Java标准库(java.util包)的一部分,它提供了大量静态方法,用于操作和处理数组。本章我们将深入探讨Arrays工具类的核心功能和使用方式,帮助你更好地理解和运用这个强大的工具。 ...
为了简化数组的操作并提高代码的效率与可读性,Java提供了`Arrays`类,这是一个包含了一系列静态方法的实用工具类,用于执行各种数组操作。以下是对`Arrays`类中部分常用方法的详细解析: #### 1. `binarySearch` `...
Arrays类是Java语言中提供的一种工具类,主要用于操作数组。在Java编程中,数组是一种基本的数据结构, Arrays类提供了一些常用方法来操作数组,以下是Arrays类中一些常用的方法。 1. Array.toString(数组名) 数组...
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 ...在Java API中提供了操作数组的工具类 java.util.Arrays,例如:排序,查找,复制,数组转集合,数组转字符串等常见操
为了方便地操作数组,Java提供了一系列内置的方法和工具类,如`Arrays`类和Apache Commons Lang库中的`ArrayUtils`类等。本文将详细介绍Java数组的一些常用方法及其应用场景。 #### 1. 初始化数组 Java提供了多种...
Java中的`Arrays`工具类是Java Collections Framework的一部分,位于`java.util`包下,它提供了一系列静态方法,用于处理各种类型的数组,包括排序、搜索、拷贝和比较等操作。这个类的设计目的是为了方便和高效地...
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
"常用工具类"这个主题涵盖了Java编程中一系列实用的工具方法,这些方法可以帮助我们处理日常开发中的各种问题。在本文中,我们将深入探讨一些常见的Java工具类,并了解它们如何增强我们的代码质量。 首先,我们要...
Java语言在设计时就考虑到了代码的复用性和可维护性,因此提供了许多内置的工具类,这些工具类分布在不同的包下,极大地丰富了Java的功能并简化了...了解并熟练使用这些工具类,对于提升Java编程技能是非常有帮助的。
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...
2. **Arrays类**:这个工具类提供了排序、比较、复制和填充数组的功能,如Arrays.sort()、Arrays.equals()、Arrays.copyOf()等。 3. **Collections类**:与Arrays类类似,Collections类提供了对集合框架中各种接口...
在Java开发中,工具类是程序员经常会用到的代码库,它们提供了许多便捷的方法,以简化常见的编程任务。本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据...
`Arrays`类是Java的实用工具类,提供了一系列静态方法来操作数组。它可以用于排序数组(如`Arrays.sort()`),填充数组(`Arrays.fill()`),复制数组(`Arrays.copyOf()`)以及打印数组内容(`Arrays.toString()`)...
Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...
在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...
Java Arrays工具类是Java语言中的一种常用的工具类,提供了许多实用的方法来操作数组。下面是对Java Arrays工具类实例详解的相关知识点: 排序方法 Java Arrays工具类提供了多种排序方法,包括对基本类型数组和...
例如,Java中的`java.util.Arrays`就是处理数组的工具类,提供了排序、查找、复制等操作。了解这类工具类,你需要掌握基本的数据类型、数据结构以及相关的算法知识。 2. 文件操作工具类: 文件操作工具类通常包含...
在Java编程中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定的、重复的任务,以简化开发过程。这些类通常不包含任何实例变量,且其设计目的是为其他类提供服务。这里我们将探讨27个常用的...