数组
package com.xw.Array;
public class ArrayD01 {
public static void main(String[] args) {
//变量类型 变量的名字 = 变量的值;
//数组类型
int[] nums;//声明一个数组
//int nums2[];// c++ 写法 java也可使用
nums =new int[10];//创建一个数组
// 赋值
nums[0]=1;
nums[2]=1;
nums[3]=1;
nums[4]=1;
nums[5]=1;
nums[6]=1;
nums[7]=1;
}
}
package com.xw.Array;
public class ArrayD02 {
public static void main(String[] args) {
int [] araay = {1,2,3,4,5};
for (int i = 0; i <araay.length ; i++) {
System.out.println(araay[i]);//打印所有的元素
}
//计算所有元素的和
int sum = 0;
for (int i = 0; i <araay.length ; i++) {
sum =sum+araay[i];
}
System.out.println(sum);
//查找最大元素
int max =araay[0];
for (int i = 0; i <araay.length ; i++) {
if (araay[i]>max){
max =araay[i];
}
}
System.out.println(max);
}
}
package com.xw.Array;
public class ArrayD03 {
public static void main(String[] args) {
int[]arrays ={1,2,3,4,5};
for (int array : arrays) {//没有下标arrays.for
System.out.println(array);
}
System.out.println("=========================");
printArray(arrays);
reverse(arrays);
}
//打印数组元素
public static void printArray(int[]arrays){
for (int i = 0; i <arrays.length ; i++) {
System.out.print(arrays[i]+" ");
}
System.out.println();
}
//反转数组
public static void reverse(int[] arrays){
for (int i = 4; i >=0 ; i--) {
System.out.print(arrays[i]+" ");
}
}
//==================
}
package com.xw.Array;
public class ArrayD04 {
public static void main(String[] args) {
int A[]={1,2,3,4,5};
B(A);
C(A);
}
public static void B(int A []){
for (int i = 0; i <A.length ; i++) {
System.out.print(A[i]+" ");
}
System.out.println();
}
//反转
public static void C(int A[]){
for (int i =A.length-1; i >=0 ; i--) {
System.out.print(A[i]+" ");
}
}
}
多维数组
二维数组
package com.xw.Array;
public class ArrayD04 {
public static void main(String[] args) {
int A[]={1,2,3,4,5};
B(A);
C(A);
}
public static void B(int A []){
for (int i = 0; i <A.length ; i++) {
System.out.print(A[i]+" ");
}
System.out.println();
}
//反转
public static void C(int A[]){
for (int i =A.length-1; i >=0 ; i--) {
System.out.print(A[i]+" ");
}
}
}
三维数组
package com.xw.Array;
public class ArrayD06 {
public static void main(String[] args) {
//定义一个三维数组
int[][][]arrays={{{1,2},{3,4}},{{5,6},{7,8}}};
A(arrays[0][0]);//1,2
System.out.println();
A(arrays[1][0]);//5,6
System.out.println();
System.out.println(arrays[0][1]);//打印出一个对象并不是一个数组
System.out.println(arrays[0][0][0]);//1
System.out.println(arrays[0][0][1]);//2
System.out.println(arrays[1][0][0]);//5
}
public static void A(int[]arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+" ");
}
}
}
嵌套以此类推
冒泡排序
package com.xw.Array;
import java.util.Arrays;
public class ArrayD07 {
public static void main(String[] args) {
int[]a={5,8,7,9,3,4};
abc(a);
printArray(a);
}
//冒泡排序
public static int[] abc(int[]array){
//外层循环比较次数
for (int i = 0; i <array.length-1 ; i++) {
for (int j = 0; j < array.length-1-i; j++) {
//判断大小进行换位操作
if (array[j]>array[j+1]){
int b = 0;
b=array[j+1];
array[j+1]=array[j];
array[j]=b;
}
}
}
return array;
}
//打印方法
public static void printArray(int[]arrays){
for (int i = 0; i <arrays.length ; i++) {
if (i==0){
System.out.print("[");
}
if (i==arrays.length-1){
System.out.print(arrays[i]+"]");
}else {
System.out.print(arrays[i]+", ");
}
}
}
}
稀疏数组
package com.xw.Array;
public class ArrayD08 {
public static void main(String[] args) {
//创建一个二维数组11*11 0:没有棋子 1:是黑棋 2:是白棋
int[][]A=new int[11][11];
A[1][2]=1;
A[2][3]=2;
A[3][4]=3;
System.out.println("打印一个棋盘");
//增强for循环
for (int[] ints : A) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println();
}
System.out.println("=======================");
//for循环
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < A.length; j++) {
System.out.print(A[i][j]+" ");
}
System.out.println();
}
}
}
可直接定义有效值
package com.xw.Array;
public class text {
public static void main(String[] args) {
//定义一个11行11列的数组
int[][] array1= new int[11][11];
//定义俩个有效值
array1[1][2]=1;
array1[2][3]=2;
for (int[] ints : array1) {
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 < 11; j++) {
if (array1[i][j]!=0){
sum++;//2
}
}
}
System.out.println("有效值"+sum+"个");//获取总的有效值
//将值放入稀疏数组
int [][]array2=new int[sum+1][3];//sum是有效值的个数为2
//定义它是11行11列的数组
/*行 列 值
11 11 2
1 2 1
2 3 2
* */
int A=0;
array2[0][0]=11;
array2[0][1]=11;
array2[0][2]=sum;
for (int i = 0; i <array1.length ; i++) {//便利数组11*11
for (int j = 0; j <array1[1].length ; j++) {//便利1*11
if (array1[i][j]!=0){
A++;
array2[A][0]=i;
array2[A][1]=j;
array2[A][2]=array1[i][j];
}
}
}
//打印稀疏数组
for (int i = 0; i <array2.length ; i++) {
for (int j = 0; j <array2[i].length ; j++) {
System.out.print(array2[i][j]+"\t");
}
System.out.println();
}
System.out.println("=======================================");
//还原稀疏数组
int array3[][]=new int[array2[0][0]][array2[0][1]];//定义一个新的数组读取稀疏数组
for (int i = 1; i < array2.length; i++) {//读取在稀疏数组里的有效值并赋值
array3[array2[i][0]][array2[i][1]]=array2[i][2];
}
for (int i = 0; i <array3.length ; i++) {//打印新的数组完成还原
for (int j = 0; j <array3.length ; j++) {
System.out.print(array3[i][j]+"\t");
}
System.out.println();
}
}
}