您的位置:首页 > 编程语言 > Java开发

java数组练习

2017-11-04 18:22 477 查看

点击打开数组知识总结

1.数组遍历

public class Array {
public static void main(String args[]){
//数组的遍历
int[] arr={1,2,3,5,6};
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1)
System.out.print(arr[i]+"]");
else
System.out.print(arr[i]+", ");
}
}
}


运行结果:



2.输出数组中的最值

public class Array {
public static void main(String args[]){

//获取数组最值
int[] arr2={11,87,63,59,36,72};
int max=arr2[0];
for(int i=0;i<arr2.length;i++){
if(arr2[i]>max)
max=arr2[i];
}
System.out.println("arr2的max: "+max);
System.out.println("arr2的min: "+getMin(arr2))
}
/*方法改进
需求:获取元素最小值
两个明确:
返回值类型:int
参数列表:int[] arr
*/
public static int getMin(int[] arr){
int min=arr[0];
for(int i=0;i<arr2.length;i++){
if(arr[i]<min)
min=arr[i];
}
return min;
}
}


运行结果:



3.数组元素逆序排列

分析:

A:定义一个数组,并进行静态初始化

B:思路:

把0索引和arr.length-1的数据交换

把1索引和arr.length-2的数据交换

……

只要做到arr.length/2的时候即可

public class Array {
public static void main(String args[]){

//数组元素逆序
int[] arr3={11,22,33,55,66,77};
System.out.println("逆序前");
printArr(arr3);
System.out.println("\n逆序后");
reverse(arr3);
printArr(arr3);
}
//数组逆序方法:
public static void reverse(int[] arr){
for(int i=0;i<arr.length/2;i++){
int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
}
public static void printArr(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1)
System.out.print(arr[i]+"]");
else
System.out.print(arr[i]+", ");
}
}
}

另法:改变方法体
public static void reverse(int[] arr){ for(int start=0,end=arr.length-1;start<=end;start++,end--){ int flag=arr[start]; arr[start]=arr[end]; arr[end]=flag; } }


运行结果:



方法二:

改变方法体,第一个索引最后一个索引分别设为start和end,根据索引交换数组元素的值,每交换一次,start++,end--,直到start等于end为止

public static void reverse(int[] arr){

for(int start=0,end=arr.length-1;start<=end;start++,end--){
int flag=arr[start];
arr[start]=arr[end];
arr[end]=flag;
}
}


4.数组查表法

根据键盘录入索引,查找对应星期

import java.util.Scanner;
public class Array {
public static void main(String args[]){

//数组查表法:根据键盘录入索引,查找对应星期
String[] strArr={"星期1","星期2","星期3","星期4","星期5","星期6","星期7"};
System.out.print("请输入一个索引(0~6):");
Scanner sc=new Scanner(System.in);
int index=sc.nextInt();
System.out.println("你要查找的日期是:"+strArr[index]);
}
}
运行结果:



5.数组基本查找

 数组元素查找(查找指定元素第一次在数组中出现的索引)

分析:定义一个数组,并静态初始化,遍历数组,依次获取数组中的每一个元素, 和已知的数据进行比较,如果想等,就返回当前索引值     ;如果要查找的元素在数组中不存在,则一般返回负数-1

public class Array {
public static void main(String args[]){

int[] searchArr={22,521,11,12,666,22};
System.out.println("2第一次在数组中出现的索引为:"+getArr(searchArr, 2));
System.out.println("22第一次在数组中出现的索引为:"+getArr(searchArr, 22));

}

/*	需求:查找指定数值第一次在数组中出现的索引
两个明确:
返回值类型int;
参数列表:int[] arr,int value;
*/
public static int getArr(int[] arr,int value){
int index=-1;
for(int i=0;i<arr.length;i++){
if(arr[i]==value)
index=i;
break;
}
return index;
}

}
运行结果:



方法二:

改变方法体:

public static int getArr(int[] arr,int value){
for(int i=0;i<arr.length;i++){
if(arr[i]==value)
return i;
}
return -1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: