1.数组排序
快速排序
package com.langsin;
import java.util.Arrays;
import java.util.Scanner;
public class sort3 {
public static void main(String[] args) {
int[] a={6,3,1,4,7,9,8,10,45,32,15};
for (int i = 0; i <a.length ; i++) {
for (int j = i+1; j < a.length; j++) {
if (a[i]<a[j]){
int sum=a[i];
a[i]=a[j];
a[j]=sum;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
System.out.println();
String string=Arrays.toString(a);
System.out.println(string);
}
}
2.多维数组
int[][] arr=new int[5][5];
int[][] arr={{1,2,3},{1,2,3},{1,2,3}};
int[] arr={{1},{1,2,4,3},{1,4,3}};
int[][] arr=new int[8][];
arr[0]=new int[4];
arr[1]=new int[8];
3.定义一个数组int[] arr={3,4,5,6,5,5,3,1,7,9,0,4,3,2,1,2,1,2,1,1};
里面放的是10以内的数字,统计1~9数字的个数
(1)
package com.langsin;
import java.util.Arrays;
public class test1 {
public static void main(String[] args) {
//定义一个数组int[] arr={3,4,5,6,5,5,3,1,7,9,0,4,3,2,1,2,1,2,1,1};
//里面放的是10以内的数字,统计1~9数字的个数
int[] arr={3,4,5,6,5,5,3,1,7,9,0,4,3,2,1,2,1,2,1,1};
int[] a=new int[10];
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j <10 ; j++) {
if (arr[i]==j){a[j]=a[j]+1;}
}
}
String string= Arrays.toString(a);
System.out.println(string);
}
}
(2)
int[] arr={3,4,5,6,5,5,3,1,7,9,0,4,3,2,1,2,1,2,1,1};
for (int i = 0; i < 10; i++) {
int count=0;
for (int j = 0; j <arr.length ; j++) {
if (arr[j]==i){count++;}
}
System.out.println("数字"+i+"出现了"+count+"次");
}
(3)
int[] arr={3,4,5,6,5,5,3,1,7,9,0,4,3,2,1,2,1,2,1,1};
int[] count=new int[10];
for (int i = 0; i < arr.length; i++) {
count[arr[i]]++;
}
for (int i = 0; i < count.length; i++) {
System.out.println("数字"+i+"出现了"+count[i]+"次");
}
4.现定义如下一个数组int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
将不为0的数存入一个新的数组
生成的新数组为int newArr={1,3,4,5,6,6,5,4,7,6,7,5};
package com.langsin;
import java.util.Arrays;
public class test2 {
public static void main(String[] args) {
//现定义如下一个数组int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
//将不为0的数存入一个新的数组
//生成的新数组为int newArr={1,3,4,5,6,6,5,4,7,6,7,5};
int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int count=0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i]!=0){
count++;
}
}
int[] newArr=new int[count];
for (int i = 0,j=0; i < oldArr.length; i++) {
if (oldArr[i]!=0){
newArr[j]=oldArr[i];
j++;
}
}
String string= Arrays.toString(newArr);
System.out.println(string);
}
}
5.求一个矩阵对角线元素之和
1 2 3 4
4 5 6 5
7 8 9 6
1 2 3 4
//求一个矩阵对角线元素之和
//1 2 3 4
//4 5 6 5
//7 8 9 6
//1 2 3 4
int[][] arr={{1,2,3,4},{4,5,6,5},{7,8,9,6},{1,2,3,4}};
int sum=0;
for (int i = 0; i < arr.length; i++) {
sum=sum+arr[i][i]+arr[i][3-i];
}
System.out.println(sum);
int[][] arr={{1,2,3,4},{4,5,6,5},{7,8,9,6},{1,2,3,4}};
int count1=0;
int count2=0;
for (int i = 0; i < arr.length; i++) {
for (int i1 = 0; i1 < arr[i].length; i1++) {
if (i==i1){count1=count1+arr[i][i1];}
if (i==3-i1){count2=count2+arr[i][i1];}
}
}
System.out.println((count1+count2));
6.得到如图所示二维数组
1 6 10 13 15
2 7 11 14
3 8 12
4 9
5
package com.langsin;
import java.util.Arrays;
public class test4 {
public static void main(String[] args) {
//得到如图所示二维数组
//1 6 10 13 15
//2 7 11 14
//3 8 12
//4 9
//5
int[][] arr = new int[5][];
int count = 1;
for (int i = 0, j = 5; i < 5; i++, j--) {
arr[i] = new int[j];
}
for (int i = 0; i < arr.length; i++) {
for (int i1 = 0; i1 < arr[i].length; i1++) {
arr[i1][i] = count;
count++;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println();
for (int i1 = 0; i1 < arr[i].length; i1++) {
System.out.print(arr[i][i1]+"\t");
}
}
}
}