Java学习
package com.Long.array;
import java.util.Arrays;
public class array05 {
public static void main(String[] args)
{
int[] a = {1, 2, 3, 456, 5112, 1654};
System.out.println(Arrays.toString(a)); //[1, 2, 3, 456, 5112, 1654]
print(a); //1 2 3 456 5112 1654
System.out.println(a); // [I@1b6d3586
}
public static void print(int[] a){
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
}
}
Arrays.sort(a) 对数组a进行从小到大的排序
Arrays.fill(a,1) 对数组A全部填充成1
Arrays.fill(a,1,3,1)对数组从第一个到2个填充成1
package com.Long.array;
import java.util.Arrays;
public class array06 {
public static void main(String[] args) {
int[] a = {1,2,3,456,5112,1654};
Arrays.sort(a);
System.out.println(Arrays.toString(a)); //[1, 2, 3, 456, 1654, 5112]
Arrays.fill(a,1,4,0);
System.out.println(Arrays.toString(a)); //[1, 0, 0, 0, 1654, 5112]
Arrays.fill(a,0);
System.out.println(Arrays.toString(a)); //[0, 0, 0, 0, 0, 0]
}
}
冒泡排序
array为一个数组,自己设置一个排序sort方法对array数组从小到大进行排序。
package com.Long.array;
import java.util.Arrays;
public class arraydemo07 {
public static void main(String[] args) {
int[] array = {1,2,5,6,564,15,32,56,3165,15612};
int[] sort = sort(array);//调用完我们自己写的排序方法,返回一个排序后的数组
System.out.println(Arrays.toString(sort));
}
//冒泡排序
//比较数组两个相邻的元素,如果第一个比第二个大就交换位置,
//每一次比较都会产生一个最大或者最小的数
//下一轮少一次排序,直到结束。
public static int[] sort (int[] array){
int temp = 0;
//外层循环,判断我们这个要走多少次;
for (int i = 0; i < array.length-1; i++) {
boolean flag = false; //如果数组直接排好了,就不用进行了
//内层循环,比较两个数大小,交换位置
for (int j = 0; j < array.length-1-i; j++) {
if(array[j]>array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if (flag==false){
break;
}
}
return array;
}
}
稀疏数组

将左侧数组变成右侧形式,简单定义一个11*12的数组,array1 [1]
-
查验有效值的个数
-
创建一个稀疏数组在第一行中输入array1行列的信息 还有 有效值的个数
-
遍历我们的二维数组,array1.length为行的数量11,array1[i].length为列的数量12
-
还原数组,定义新的数组array3,array2
package com.Long.array;
import java.lang.reflect.Array;
import java.util.Arrays;
public class arraydemo08 {
public static void main(String[] args) {
// 创建一个二维数组11*12 0:没有棋子 1:黑棋 2:白棋
int[][] array1 =new int[11][12];
array1[1][2] = 1;
array1[2][3] = 2;
//输出原始的数组
System.out.println("输出原始的数组");
for (int[] ints : array1) { //foreach 循环,取每一行
for (int anInt : ints) { //取每一列
System.out.print(anInt+"\t");
}
System.out.println();
}
System.out.println("===============");
//转换成稀疏数组
//获取有效值个数
int sum = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 12; j++) {
if(array1[i][j] != 0){
sum++;
}
}
}
System.out.println("有效值个数:"+sum);
//创建一个稀疏数组的列表
int[][] array2 = new int[sum+1][3];
array2[0][0] = 11; //行
array2[0][1] = 12; //列
array2[0][2] = sum; //有效数
//遍历我们的二维数组
int count = 0;
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
if(array1[i][j] != 0){
count++;
array2[count][0] = i;
array2[count][1] = j;
array2[count][2] = array1[i][j];
}
}
}