1、数组平均值
public static double avg(int[] array){
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum*(1.0) / array.length;
}
public static void main(String[] args) {
int[] array = {5,65,21,34,79,63};
System.out.println(avg(array));
}
运行代码:
44.5
Process finished with exit code 0
2、查找数组中指定元素(顺序查找)
public static int key(int[] array,int key){
for (int i = 0; i < array.length; i++) {
if (array[i]==key){
return i;
}
}
return -1;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6};
int index = key(array,5);
if (index == -1){
System.out.println("数组中没有你要找的关键字!");
}else {
System.out.println("找到了你要的关键字,下标为:"+index);
}
}
运行代码:
找到了你要的关键字,下标为:4
Process finished with exit code 0
3、二分查找
public static int two(int[] array,int key) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (array[mid] > key) {
right = mid - 1;
} else if (array[mid] < key) {
left = mid + 1;
} else {
return mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] array = {1,2,3,14,5};
Arrays.sort(array);
System.out.println("排序之后的数组:"+Arrays.toString(array));
int index = two(array,5);
if (index == -1){
System.out.println("数组中没有你要找的关键字!");
}else {
System.out.println("找到了你要的关键字,下标为:"+index);
}
}
运行代码:
排序之后的数组:[1, 2, 3, 5, 14]
找到了你要的关键字,下标为:3
Process finished with exit code 0
4、冒泡排序
public static void bubbleSort(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 tmp = array[j];
array[j]=array[j+1];
array[j+1] = tmp;
}
}
}
}
public static void main(String[] args) {
int[] array = {1,2,31,14,5};
System.out.println("排序之前,数组为:"+ Arrays.toString(array));
bubbleSort(array);
System.out.println("排序之后,数组为:"+ Arrays.toString(array));
}
运行代码:
排序之前,数组为:[1, 2, 31, 14, 5]
排序之后,数组为:[1, 2, 5, 14, 31]
Process finished with exit code 0
优化一下:不变化就结束
public static void bubbleSort(int[] array){
for (int i = 0; i < array.length-1; i++) {
boolean flg = false;
for (int j = 0; j < array.length-1-i; j++) {
if (array[j]>array[j+1]){
int tmp = array[j];
array[j]=array[j+1];
array[j+1] = tmp;
flg = true;
}
}
if (flg == false) break;;
}
}
public static void main(String[] args) {
int[] array = {1,2,31,14,5};
System.out.println("排序之前,数组为:"+ Arrays.toString(array));
bubbleSort(array);
System.out.println("排序之后,数组为:"+ Arrays.toString(array));
}
排序之前,数组为:[1, 2, 31, 14, 5]
排序之后,数组为:[1, 2, 5, 14, 31]
Process finished with exit code 0
5、数据逆置
public static void main(String[] args) {
int[] array = {1,2,31,14,5};
System.out.println("逆置之前,数组为:"+ Arrays.toString(array));
reverse(array);
System.out.println("逆置之后,数组为:"+ Arrays.toString(array));
}
public static void reverse(int[] array){
int left = 0;
int right = array.length-1;
int tmp = 0;
while (left<right){
tmp = array[left];
array[left] = array[right];
array[right]= tmp;
left++;
right--;
}
}
逆置之前,数组为:[1, 2, 31, 14, 5]
逆置之后,数组为:[5, 14, 31, 2, 1]
Process finished with exit code 0
6、二维数组
优化一下:不变化就结束定义
public static void main(String[] args) {
//手动加花括号
int[][] array = {{1,2,3},{4,5,6}};
//也不能填数字
int[][] array2 = new int[][]{{1,2,3},{4,5,6}};
//不晓得数值情况 默认0
int[][] array3 = new int[2][3];
}
优化一下:不变化就结束打印: 很麻烦
public static void main(String[] args) {
int[][] array = {{1,2,3},{4,5,6}};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
运行代码:
1 2 3
4 5 6
Process finished with exit code 0
优化一下:不变化就结束万能打印:
public static void main(String[] args) {
int[][] array = {{1,2,3},{4,5,6}};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
运行代码:
1 2 3
4 5 6
Process finished with exit code 0
优化一下:不变化就结束二维数组示意图:
优化一下:不变化就结束使用foreach进行打印:
System.out.println("使用foreach进行打印");
for (int[] tmp:array) {
System.out.println(tmp);
for (int x: tmp) {
System.out.print(x+" ");
}
System.out.println();
}
运行代码:
使用foreach进行打印
[I@1b6d3586
1 2 3
[I@4554617c
4 5 6
Process finished with exit code 0
优化一下:不变化就结束使用toString方法进行打印:
System.out.println("使用toString方法进行打印");
//深度打印方法Arrays.deepToString()
System.out.println(Arrays.deepToString(array));
运行代码:
使用toString方法进行打印
[[1, 2, 3], [4, 5, 6]]
Process finished with exit code 0