8.Arrays类的静态方法
8.1 知识点
Arrays类是什么
Arrays类是Java提供的一个专门对数组进行操作的类。它提供了很多静态方法,共我们对数组进行处理,比如排序、查找、填充等等方法。使用它需要导入java.util.Arrays包(类似C#中的命名空间)。
填充替换数组元素
Arrays.fill 方法可以帮助我们对数组进行填充。它有两个重载:
1.Arrays.fill(数组,填充值)
int arr[] = new int[5];
for (int n : arr)
{
System.out.println(n);//全都是0
}
Arrays.fill(arr, 5);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);//全都是5
}
2.Arrays.fill(数组,填充起始位置(包括),填充结束位置(不包括),填充值)
Arrays.fill(arr, 1, 4, 1);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);//5 1 1 1 5
}
Arrays.fill(arr, 1, arr.length, 0);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);//5 0 0 0 0
}
数组排序
Arrays.sort(数组) 方法可以对数组进行默认的升序排序:
arr = new int[]{4, 3, 6, 1, 2, 8, 1};
Arrays.sort(arr);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);
// 1
// 1
// 2
// 3
// 4
// 6
// 8
}
复制数组
- Arrays.copyOf(数组,复制长度) 方法可以赋值指定数组的指定长度。若长度小于传入数组,则截取;若长度大于传入数组,则用默认值填充:
int[] arr2 = Arrays.copyOf(arr, 10);
System.out.println("***************");
for (int n : arr2)
{
System.out.println(n);
// 1
// 1
// 2
// 3
// 4
// 6
// 8
// 0
// 0
// 0
}
- Arrays.copyOfRange(数组,开始复制索引(包括),赋值的最后索引位置(不包括)):
arr2 = Arrays.copyOfRange(arr, 1, 4);
System.out.println("***************");
for (int n : arr2)
{
System.out.println(n);
// 1
// 2
// 3
}
查询数组
Arrays.binarySearch(数组,搜索元素)。注意:由于binarySearch内部是对数组进行二分查找,所以使用前必须对数组进行排序。一定要记住使用该API之前一定要排序。如果数组当中没有想要寻找的元素,返回值为负数。如果有相同元素,不能确定返回相同元素的第几个元素。
Arrays.sort(arr);
int index = Arrays.binarySearch(arr, 1);
System.out.println("***************");
System.out.println(index);//1 如果有相同元素不能确定返回相同元素的第几个元素
//Arrays.binarySearch(数组,开始索引(包括),结束索引(不包括),搜索元素)
总结
Java中如果相对数组进行填充、替换、排序、复制、查询等操作,我们可以使用Arrays类中的静态方法:
- 填充替换:fill
- 排序:sort
- 复制:copyOf、copyOfRange
- 查询:binarySearch
8.2 知识点代码
import java.util.Arrays;
public class Lesson08_Arrays类的静态方法
{
public static void main(String[] args)
{
//知识点1:Arrays类是什么
//Arrays类是Java提供的一个专门对数组进行操作的类
//它提供了很多静态方法,共我们对数组进行处理
//比如排序、查找、填充等等方法
//使用它 需要导入java.util.Arrays包(类似C#中的命名空间)
//知识点2:填充替换数组元素
//Arrays.fill 方法可以帮助我们对数组进行填充
//它有两个重载
//1.Arrays.fill(数组,填充值)
int arr[] = new int[5];
for (int n : arr)
{
System.out.println(n);//全都是0
}
Arrays.fill(arr, 5);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);//全都是5
}
//2.Arrays.fill(数组,填充起始位置(包括),填充结束位置(不包括),填充值)
Arrays.fill(arr, 1, 4, 1);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);//5 1 1 1 5
}
Arrays.fill(arr, 1, arr.length, 0);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);//5 0 0 0 0
}
//知识点3:数组排序
//Arrays.sort(数组) 方法可以对数组进行默认的升序排序
arr = new int[]{4, 3, 6, 1, 2, 8, 1};
Arrays.sort(arr);
System.out.println("***************");
for (int n : arr)
{
System.out.println(n);
// 1
// 1
// 2
// 3
// 4
// 6
// 8
}
//知识点4:复制数组
//1.Arrays.copyOf(数组,复制长度) 方法可以赋值指定数组的指定长度
//若长度 小于传入数组,则截取;若长度 大于传入数组,则用默认值填充
int[] arr2 = Arrays.copyOf(arr, 10);
System.out.println("***************");
for (int n : arr2)
{
System.out.println(n);
// 1
// 1
// 2
// 3
// 4
// 6
// 8
// 0
// 0
// 0
}
//2.Arrays.copyOfRange(数组,开始复制索引(包括),赋值的最后索引位置(不包括))
arr2 = Arrays.copyOfRange(arr, 1, 4);
System.out.println("***************");
for (int n : arr2)
{
System.out.println(n);
// 1
// 2
// 3
}
//知识点5:查询数组
//Arrays.binarySearch(数组,搜索元素)
//注意:由于binarySearch内部是对数组进行二分查找
//所以使用前必须对数组进行排序
Arrays.sort(arr);
//一定该记住 使用该API之前 一定要排序
//如果数组当中没有想要寻找的元素 那么返回值为负数
int index = Arrays.binarySearch(arr, 1);
System.out.println("***************");
System.out.println(index);//1 如果有相同元素不能确定返回相同元素的第几个元素
//Arrays.binarySearch(数组,开始索引(包括),结束索引(不包括),搜索元素)
//总结
//Java中如果相对数组进行填充、替换、排序、复制、查询等操作
//我们可以使用Arrays类中的静态方法
//填充替换:fill
//排序:sort
//复制:copyOf、copyOfRange
//查询:binarySearch
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com