数组使用
package Array;
public class testAdd {
public static void main(String[] args) {
//求和
int []m = {1,2,3,4,5};
int sum = 0;
for(int i:m){
sum+=i;
}
System.out.println("和为"+sum);
System.out.println("**********");
//求最大值
int max = m[0];
for (int i = 0; i < m.length; i++) {
if(m[i]>max){
max = m[i];
}
}
System.out.println("最大值为"+ max);
System.out.println("***************");
Print(reserve(m));
}
public static int[] reserve(int[]m){
int []result = new int[m.length];
for (int i = 0,j = m.length-1; i < m.length; i++,j--) {
result[j] = m[i];
}
return result;
}
public static void Print(int[]array){
//打印数组
for (int i = 0 ; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
- 数组是相同数据类型的集合
- 数组也是对象,相当于方法中的成员变量
- 数组长度是确顶,不可变的,如果越界,则会报错ArrayIndexOutofBounds
二维数组
package Array;
public class TwoArray {
public static void main(String[] args) {
int [][] a = {{1,2},{2,3,5},{3,4,2},{4,5}};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}
Arrays用法
package Array;
import java.lang.reflect.Array;
import java.util.Arrays;
public class ArraysTest {
public static void main(String[] args) {
int [] a = {1,4,2,5,53,112,21,121,11,33};
System.out.println(Arrays.toString(a));
//sort排序
Arrays.sort(a);
System.out.println(Arrays.toString(a));
//fill填充
Arrays.fill(a,2,5,0);
System.out.println(Arrays.toString(a));
}
}
冒泡排序
package Array;
import java.util.Arrays;
//冒泡排序
public class Maopao {
public static void main(String[] args) {
boolean flag = false;
int []m ={2,3,5,22,21,42,1,23,9};
for (int i = 0; i < m.length-1; i++) {
for (int j = 0; j <m.length-1-i ; j++) {
if(m[j+1]<m[j]){
int temp;
temp = m[j];
m[j] = m[j+1];
m[j+1] = temp;
flag = true;
}
}
if (flag = false){
break;
}
}
System.out.println(Arrays.toString(m));
}
}
稀疏数组
package Array;
import java.util.Arrays;
public class SparseArray {
public static void main(String[] args) {
int [][] a= new int[11][11];
a[2][3] = 1;
a[3][5] = 2;
//原始数组
for (int[] ints : a) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println();
}
//稀疏数组
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j <a[i].length ; j++) {
if(a[i][j]!=0){
count++;
}
}
}
System.out.println("有效值数"+count);
//创建一个稀疏数组
int sum = 0;
int [][] a2 = new int[count+1][3];
a2[0][0] = 11;
a2[0][1] = 11;
a2[0][2] = count;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if(a[i][j]!=0){
sum++;
a2[sum][0] = i;
a2[sum][1] = i;
a2[sum][2] = a[i][j];
}
}
}
System.out.println("*************");
//打印稀疏数组
for (int[] ints : a2) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println();
}
System.out.println("开始还原稀疏数组");
int a3[][] = new int[a2[0][0]][a2[0][1]];
for (int i = 1; i < a2.length; i++) {
a3[a2[i][0]][a2[i][1]] = a2[i][2];
}
System.out.println("打印还原数组");
for (int[] ints : a3) {
for (int anInt : ints) {
System.out.print(anInt+" ");
}
System.out.println();
}
}
}