Arrays类
常用方法
Arrays是操作数组的工具类
toString
import java.util.Arrays;
public class d1 {
public static void main(String[] args) {
//toString:将数组变成字符串
int[] arr={1,2,3,4,5,6,7};
System.out.println(Arrays.toString(arr));
}
}
binarySearch
public class d2 {
public static void main(String[] args) {
//binarySearch:二分查找法查找元素
int[] arr={1,2,3,4,5};
//如果查找的元素存在,那返回的是真实的索引
//查找的数组必须是升序的
System.out.println(Arrays.binarySearch(arr, 2));//1
System.out.println(Arrays.binarySearch(arr, 5));//4
/*如果查找的元素不存在,那返回的是-插入点-1
插入点:如果当前查找的元素存在,它在数组中的索引
如6不存在于arr中,那它的插入点就是索引5,因为6如果存在,那它会在5的后面
所以返回-5-1=-6
至于-1,是防止如在{1,2,3}这种数组查找0,如果不-1,那么会返回0,不合理。
*/
System.out.println(Arrays.binarySearch(arr, 6));//-6
}
}
copyOf
import java.util.Arrays;
public class d3 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
//当新数组的长度小于老数组,会部分拷贝
int[] new_arr1=Arrays.copyOf(arr,3);
//当新数组的长度等于老数组,会全部拷贝
int[] new_arr2=Arrays.copyOf(arr,5);
//当新数组的长度大于老数组,会补上默认初始值
int[] new_arr3=Arrays.copyOf(arr,7);
System.out.println(Arrays.toString(new_arr1));//[1, 2, 3]
System.out.println(Arrays.toString(new_arr2));//[1, 2, 3, 4, 5]
System.out.println(Arrays.toString(new_arr3));//[1, 2, 3, 4, 5, 0, 0]
}
}
copyOfRange
import java.util.Arrays;
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
int[] new_arr4=Arrays.copyOfRange(arr,0,4);
//copyOfRange包头不包尾,包含0索引不包含4索引
System.out.println(Arrays.toString(new_arr4));//[1, 2, 3, 4]
}
fill
import java.util.Arrays;
public class d4 {
public static void main(String[] args) {
//fill:填充数组
int[] arr={1,2,3,4,5};
Arrays.fill(arr,1);
System.out.println(Arrays.toString(arr));//[1, 1, 1, 1, 1]
}
}
sort
import java.util.Arrays;
public class d5 {
public static void main(String[] args) {
int[] arr={5,6,3,1,4,2,8,10,7,9};
Arrays.sort(arr);//默认排序是给基本类型升序的
System.out.println(Arrays.toString(arr));
//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}
}
import java.util.Arrays;
import java.util.Comparator;
public class d6 {
public static void main(String[] args) {
//这种排序是针对引用数据类型的,如果要应用于基本数据类型
//就要把基本数据类型变成其对应的包装类
Integer[] arr={5,6,3,1,4,2,8,10,7,9};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
//o1:无序序列中遍历得到的每一个元素
//o2:有序序列中的元素
//o1-o2:升序
//o2-o1:降序
return o2-o1;
}
});
System.out.println(Arrays.toString(arr));//[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
}
}
equals
package Map;
import java.util.Arrays;
public class demo {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
int[] arr2 = {1,2,3,5,4};
System.out.println(Arrays.equals(arr1, arr2));//false
//数组的数据个数和对应索引的数据相同才true
System.out.println(Arrays.equals(arr1,0,3,arr2,0,3));//比较前3个数据 true JDK8用不了
}
}
asList
package Map;
import java.util.Arrays;
import java.util.List;
public class demo {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
System.out.println(list);//[1, 2, 3, 4, 5]
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App