狂神说java学习笔记
java数组06:二维数组
二维数组
int a[][] = new int[2][5];
int[][] a = new int[2][5];
package array;
public class ArrayDemo05 {
public static void main(String[] args) {
int[][] array = {{1,2},{3,4},{5,6},{7,8},{9,10}};
System.out.println(array[0][0]);
System.out.println(array[0][1]);
System.out.println(array[1][0]);
System.out.println(array[1][1]);
System.out.println(array[2][0]);
System.out.println(array.length);
System.out.println(array[0].length);
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
}
}
java数组07:Arrays类讲解
数组的工具类:java.util.Arrays
该类包含用于操作数组的各种方法(如排序和搜索)
常用功能:
给数组赋值:fill方法
对数组排序:sort方法,默认升序
比较数组:通过equals方法比较数组中元素值是否相等
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
package array;
import java.util.Arrays;
public class ArrayDemo06 {
public static void main(String[] args) {
int[] a = {1, 3333, 9, 132, 6, 7, 2, 8};
//打印数组元素
System.out.println(Arrays.toString(a));
printArray(a);
//对数组进行排序:升序
Arrays.sort(a);
System.out.println(Arrays.toString(a));
//数组填充
// Arrays.fill(a,0);
// System.out.println(Arrays.toString(a));
//填充下标2-4之间的元素(不含4)
Arrays.fill(a,2, 4, 0);
System.out.println(Arrays.toString(a));
}
public static void printArray(int[] a) {
for (int i = 0; i < a.length; i++) {
if(i==0){
System.out.print("[");
}
if(i==a.length-1){
System.out.println(a[i]+"]");
}else{
System.out.print(a[i] + ", ");
}
}
}
}
java数组08:冒泡排序
package array;
import java.util.Arrays;
public class ArrayDemo07 {
public static void main(String[] args) {
int[] a = {3,2,1,4,32,5,7,77,85,33};
sort(a);
System.out.println(Arrays.toString(a));
}
//冒泡排序
public static int[] sort(int[] array){
for (int i = 0; i < array.length; i++) {
boolean flag = false; // 通过flag标识减少没有意义的比较
for (int j = 0 ; j < array.length-1-i; j++) {
if(array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if(!flag){
break;
}
}
return array;
}
}
java数组09:稀疏数组
稀疏数组
记录数组一共有几行几列,有多少个不同值
把具有不同值的元素和行列及值记录在一个小规模的数组中
| 行 | 列 | 值 |
|---|---|---|
| 6 | 7 | 8 |
| 0 | 3 | 22 |
| 0 | 6 | 15 |
| 1 | 1 | 11 |
| 1 | 5 | 17 |
| 2 | 3 | -6 |
| 3 | 5 | 39 |
| 4 | 0 | 91 |
| 5 | 2 | 28 |
package array;
import java.util.Arrays;
public class ArrrayDemo08 {
public static void main(String[] args) {
//1.创建一个二维数组11*11 0:没有棋子 1:黑棋 2:白棋
int[][] array1 = new int[11][11];
array1[1][2] = 1;
array1[2][3] = 1;
array1[3][5] = 1;
//输出原始的数组
System.out.println("输出原始的数组");
for(int[] ints:array1){
for(int anInt:ints){
System.out.print(anInt+" ");
}
System.out.println();
}
//转换为稀疏数组保存
//获取有效值的个数
int sum = 0;
for(int i=0;i<11;i++){
for(int j=0;j<11;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] = 11;
array2[0][2] = sum;
//遍历二维数组,将非0的值,存放到稀疏数组中
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];
}
}
}
//输出稀疏数组
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i][0]+" "+array2[i][1]+" "+array2[i][2]);
}
//还原
//1.读取稀疏数组
int[][] array3 = new int[array2[0][0]][array2[0][1]];
//2.给其中的元素还原它的值
for (int i = 1; i < array2.length; i++) {
array3[array2[i][0]][array2[i][1]] = array2[i][2];
}
//3.输出还原的数组
for(int[] ints:array3){
for(int anInt:ints){
System.out.print(anInt+" ");
}
System.out.println();
}
}
}
&spm=1001.2101.3001.5002&articleId=149948199&d=1&t=3&u=3956b2109c67439b8bde4031d60be7ab)
1576

被折叠的 条评论
为什么被折叠?



