JAVA 基础知识27日谈——Day5
Day5_ JAVA 数组中的基本知识
運行環境: jre1.8.0_261
数组的定义
数组的基本操作
1 遍历
2 最值
3 逆序
4 查表
5 基本查找
1 数组的遍历
1.1 数组的遍历
// 遍历数组里的所有元素
public class ArrayBianli {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1 = { 1, 2, 3, 4, 5 };
// 遍历数组里面的所有元素
for (int x = 0; x < arr1.length; x++) {
System.out.println(arr1[x]);
}
}
}
1.2 调用打印方法
public class CallArrayPrint {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 声明数组
// 调用方法打印数组
int [] arr1 = {2,4,6,8,10,12};
printArray(arr1);
}
// 构造打印数组的方法
public static void printArray(int[] array) {
for (int x = 0; x < array.length; x++) {
System.out.println(array[x]);
}
}
}
2 数组的最值 max/min
2.1 调用方法arrayMax ,arrayMin 获取数组的最值
public class ArrayMax {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr1 = { 1, 2, 3, 4, 5, 6, 7 };
System.out.println(arrayMax(arr1));
}
// 需求:返回数组的最大值
// 返回值类型:int/float/double float
// 参数列表: 数组 array
public static int arrayMax(int[] array) {
int max = array[0];
for (int x = 1; x < array.length; x++) {
if (array[x] > max) {
max = array[x];
}
}
return max;
}
public static int arrayMin(int[] array) {
int min = array[0];
for (int x = 1; x < array.length; x++) {
if (array[x] < min) {
min = array[x];
}
}
return min;
}
}
输出结果:
7
1
3 数组元素逆序
方法1
public class ArrayInverse {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr1 = {1,2,3,4,5,6,7,8,9};
System.out.println("原始数组是:");
printArray(arr1);
System.out.println("逆序后的数组是:" );
arrayInverse(arr1);
printArray(arr1);
}
// 需求:数组逆序
// 返回值类型: int [] array
// 参数列表: int [] array
public static void arrayInverse(int[] array) {
int len = array.length;
for (int x = 0; x < len / 2; x++) {
int temp = array[x];
array[x] = array[len - 1 - x];
array[len - 1 - x] = temp;
}
}
// 数组的遍历
public static void printArray(int [] array) {
System.out.print("[");
for(int x=0;x<array.length;x++) {
if(x == array.length-1) {
System.out.println(array[x] + "]");
}else {
System.out.print(array[x]+",");
}
}
}
}
輸出結果:
原始数组是:
[1,2,3,4,5,6,7,8,9]
逆序后的数组是:
[9,8,7,6,5,4,3,2,1]
方法2
package cn.method_01;
public class ArrayInverse {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr1 = {1,2,3,4,5,6,7,8,9};
System.out.println("原始数组是:");
printArray(arr1);
System.out.println("逆序后的数组是:" );
arrayInverse(arr1);
printArray(arr1);
System.out.println("-------------");
System.out.println("arrayInverse2 ");
System.out.println("原始数组是:");
printArray(arr1);
System.out.println("逆序后的数组是:" );
arrayInverse2(arr1);
printArray(arr1);
}
// 需求:数组逆序
// 返回值类型: int [] array
// 参数列表: int [] array
public static void arrayInverse(int[] array) {
int len = array.length;
for (int x = 0; x < len / 2; x++) {
int temp = array[x];
array[x] = array[len - 1 - x];
array[len - 1 - x] = temp;
}
}
// 數組的逆序使用兩個循環
public static void arrayInverse2(int [] array) {
for(int start=0 ,end = array.length-1;start<= end;start++ ,end --) {
int temp = array[start];
array[start]= array[end];
array[end] = temp;
}
}
// 数组的遍历
public static void printArray(int [] array) {
System.out.print("[");
for(int x=0;x<array.length;x++) {
if(x == array.length-1) {
System.out.println(array[x] + "]");
}else {
System.out.print(array[x]+",");
}
}
}
}
輸出結果:
原始数组是:
[1,2,3,4,5,6,7,8,9]
逆序后的数组是:
[9,8,7,6,5,4,3,2,1]
arrayInverse2
原始数组是:
[9,8,7,6,5,4,3,2,1]
逆序后的数组是:
[1,2,3,4,5,6,7,8,9]
4 數組查找法
package cn.method_01;
public class ArrayChazhao {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 創建數組
int [] arr0 = {100,200,300,666,777};
int val0 = 300;
int val1 = 301;
int pos0 = getIndex(arr0, val0);
System.out.println(pos0);
int pos1 = getIndex(arr0, val1);
System.out.println(pos1);
}
/*
需求: 查找指定數據在數組中第一次出現的索引
兩個明確:
1) 返回值類型:int
2) 參數列表: int [] array; int value;
*/
public static int getIndex(int [] array, int value){
// 指定index = -1 很重要
int index = -1;
for (int x = 0; x < array.length; x++) {
if (array[x] == value) {
index = x;
break;
}
}
return index;
}
}
輸出結果
2
-1
//