1.数组逆序
/*
需求:数组逆序
两个明确:
返回值类型:viod(有人会想到应该是逆序后的数组,但是没必要,因为这两个数组其实是一个数组)
参数列表: int []arr
*/
class Reverse{
public static void main(String[]args){
int []arr= {8,3,5,6,7,4};
//逆序前
System.out.println("逆序前");
printArray(arr);
//逆序后
System.out.println("逆序后");
reverse2(arr);
printArray(arr);
}
//交换要用到for循环
public static void reverse(int [] arr){
for(int x=0;x<arr.length/2;x++){
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
public static void reverse2(int[]arr){
for(int start=0, end = arr.length-1; start<= end; start++,end--){
int temp = arr[start];
arr[start] = arr[end];
arr[end]= temp;
}
}
//遍历数组
public static void printArray(int [] arr){
System.out.print("[");
for(int x = 0;x < arr.length; x++){
if(x== arr.length-1){
System.out.println(arr[x]+"]");
}else {
System.out.print(arr[x]+",");
}
}
}
}
2.数组求和
/*
分析:
A:把题目中的数据用二维数组来表示
B:通过遍历数组得到每一个二维数组元素,相加得出结果
C:定义一个求和变量
*/
class Array2Demo{
public static void main(String[]args){
int [][]arr = {{22,23,45},{45,56,32,},{89,65,43},{32,56,78}};
//定义一个求和变量
int sum = 0 ;
//遍历二维数组
for(int x =0; x< arr.length;x++){
for(int y = 0; y< arr[x].length;y++){
sum += arr[x][y];
}
}
System.out.println("一年的销售额为: "+sum+"万元");
}
}
3.遍历二维数组
/*
遍历二维数组
*/
class Array1Demo {
public static void main(String[]args){
int [][] arr = {{1,2,3},{4,5,6},{7,8,9}};
for(int x= 0; x< arr[0].length; x++){
System.out.println(arr[0][x]);
}
System.out.println("-----------");
for(int x= 0; x< arr[0].length; x++){
System.out.println(arr[1][x]);
}
System.out.println("-------------");
for(int x= 0; x< arr[0].length; x++){
System.out.println(arr[2][x]);
}
System.out.println("-------------");
//用循环改进
for (int x= 0; x< 3;x++){
for(int y = 0; y< arr[x].length;y++){
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
System.out.println("-------------");
for (int x= 0; x< arr.length;x++){
for(int y = 0; y< arr[x].length;y++){
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
System.out.println("-------------");
//用方法改进
//改进方法
printArray2(arr);
System.out.println("-------------");
/*
需求:遍历二维数组
两个明确:
返回值类型:void
参数列表:int [][] arr
*/
}
public static void printArray2(int[][]arr){
for(int x=0; x<arr.length; x++){
for(int y=0; y<arr[x].length; y++){
System.out.print(arr[x][y]+" ");
}
System.out.println();
}
}
}
4.数组元素查找
/*
需求:数组元素查找(查找指定元素第一次在数组中出现的索引)
分析:
A:定义一个数组,并静态初始化
B:写一个功能实现
遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较
如果相等就返回当前的索引
/*
需求:数组元素查找(查找指定元素第一次在数组中出现的索引)
分析:
A:定义一个数组,并静态初始化
B:写一个功能实现
遍历数组,依次获取数组中的每一个元素,和已知的数据进行比较
如果相等就返回当前的索引
*/
class ArrayTest5{
public static void main(String[]args){
//定义一个数组并进行静态初始化
int [] arr = {45,56,48,78,7,9,48,2,78};
//调用方法
int index = getIndex(arr,48);
System.out.println("48在数组中第一次出现的索引数是 : "+ index);
}
public static int getIndex(int []rr,int value){
for(int x= 0 ; x< rr.length; x++){
if(rr[x] == value){
return x;
}
}
//假如我要查看的数据在数组中不存在,那就是找不到
//只要是判断,就可能是false
//如果找不到数据,我们一般返回一个负数即可,一般是-1
return -1;
}
}
5.java中的参数传递问题:
基本类型:形式参数的改变对实际参数没有影响
引用类型:形式参数的改变直接影响实际参数