数组应用
arrays类讲解
数组工具类 java.util.Arrays

1;给数组赋值:通过fill方法,也可以填空数组
2;对数组排序;通过sort方法,按序升
3;比较数组:通过equals方法比较数组中的元素值是否相等
4;查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作
arrays.tostring[a] 输出数组
冒泡排序

public class Demo1 {
public static void main(String[] args) {
int[] arr = {3, 23, 33, 5,99};
//冒泡排序:比较相邻元素判断是否换位置
int[] a =sort( arr);
System.out.println(Arrays.toString(a));
}
public static int[] sort(int[] arr){
//定义一个临时变量
int temp =0;
//外层循环判断我们走几步
for (int i = 0; i < arr.length-1; i++) {
boolean flag = false;//通过flag减少不必要的比较
//内层循环判断如果第一个数比第二1个数大则交换位置
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j+1]<arr[j]){
temp =arr[j];
arr[j] =arr[j+1];
arr[j+1] =temp;
flag =true;
}
}
if(flag =true){
break;
}
}
return arr;
}
}
稀疏数组


public class Demo1 {
public static void main(String[] args) {
//1;创建一个11*11的二维数组,0:代表没有棋子 1:代表有黑棋 2:代表有白棋
int [][] arr1 =new int[11][11];
arr1[1][2] = 1;
arr1[2][3] = 2;
//输出原始数组
System.out.println("输出原来的数组");
for (int[] ints : arr1) {
for (int anInt : ints) {
System.out.print(anInt +"\t");
}
System.out.println("");
}
}
}
稀疏数组转换
//创建一个稀疏数组对应的数组
int[][] arr2 =new int[sum+1][3];
arr2[0][0]=11;
arr2[0][1]=11;
arr2[0][2]=sum;
//遍历二维数组将非零的数据传入稀疏数组里面
int count =0;
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr1[i].length; j++) {
if(arr1[i][j] !=0) {
count++;
arr2[count][0] =i;
arr2[count][1] =j;
arr2[count][2] =arr1[i][j];
}
}
}
//输出稀疏数组
System.out.println("输出稀疏数组");
for(int i =0;i< arr2.length;i++){
System.out.println(arr2[i][0]+"\t"+
arr2[i][1]+"\t"+
arr2[i][2]+"\t");
}
}
}
还原
//读取稀疏数组
int[][] arr3 = new int[arr2[0][0]][arr2[0][1]];
//给其中的元素还原他原来值
for (int i = 1; i < arr2.length; i++) {
arr3[arr2[i][0]][arr2[i][1]]=arr2[i][2];
}
//3.打印
System.out.println("输出原来的数组");
for (int[] ints : arr3) {
for (int anInt : ints) {
System.out.print(anInt +"\t");
}
System.out.println();
}
}
}

浙公网安备 33010602011771号