冒泡排序法与Arrays工具类
Arrays工具类的常用方法
- 填充数组Arrays.fill();
int[] arr = new int[5];//新建一个大小为5的数组
Arrays.fill(arr,4);//给所有值赋值4
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[4, 4, 4, 4, 4]
int[] arr = new int[5];//新建一个大小为5的数组
Arrays.fill(arr, 2,4,6);//给第2位(0开始)到第4位(不包括)赋值6
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[0, 0, 6, 6, 0]
- Arrays.sort();数组排序
- 数字排序
int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
//输出: [-23, 1, 3, 4]
- 字符串排序,先大写后小写
String[] strArray = new String[] { “z”, “a”, “C” };
Arrays.sort(strArray);
//输出: [C, a, z]
- 严格按照自摸表顺序排序,也就是忽略大小写Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
//输出: [a, C, z]
- 反向排序,Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
//输出:[z, a, C]
- 忽略大小写反向排序Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
//输出: [z, C, a]
- 选择数组指定位置进行排序
int[] arr = {3,2,1,5,4};
Arrays.sort(arr,0,3);//给第0位(0开始)到第3位(不包括)排序
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
//输出:[1, 2, 3, 5, 4]
- Arrays.toString();将数组中的内容全部打印出来
int[] arr = {3,2,1,5,4};
System.out.print(arr);//直接将数组打印输出
//输出:[I@7852e922 (数组的地址)
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
//System.out.print(str);
//输出:[3, 2, 1, 5, 4]
- Arrays.equals();比较数组元素是否相等
int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};
System.out.println(Arrays.equals(arr1,arr2));
//输出:true
//如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。
冒泡排序法
基本代码:
public class Test_02 {
public static void main(String[] args) {
int [] c ={1,65,8746,798,41,31,46,3};//定义一个数组
int [] d =array(c);//把套用写好冒泡算法得出来的数组赋值给数组d
System.out.println(Arrays.toString(d));//输出数组
}
public static int [] array(int []array){
int temp = 0;//定义一个临时变量
for (int i = 0; i <array.length-1 ; i++) {//变量i定义循环次数
for (int j = 0; j <array.length-1-i ; j++) {//变量j定义数组下标
if (array[j]>array[j+1]){//如果传进来的数小下标代表的数值大于传进来的数的大下标
temp=array[j];//把小下标数代表的值赋给临时变量temp
array[j]=array[j+1];//把大下标代表的值赋给小下标代表的值
array[j+1]=temp;//把空变量里代表的值赋给大下标代表的值
}
}
}
return array;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!