日常笔记,有什么错误或者有改善的地方多多指教
1. 数组
1.1 数组地址转移问题
//示例
public static void main (String[]args){
int[] arr1 = new int[15];
int[] arr2 = new int[13];
//给不同的数组不同的下标空间进行赋值
arr1[5] = 15;
arr2[5] = 10;
//打印展示
System.out.println("arr1 :"+ arr1);
System.out.println("arr2 :"+ arr2);
//赋值
arr1[0] = 25;
//这行代码将arr1数组的首地址赋值给arr1
arr2 = arr1;
//定义数组下标号为5的值
arr1[5] = 18;
arr2[5] = 15;
//输出打印,这种情况下第二行arr2会将arr1的下标号为5的值覆盖掉
System.out.println("arr1 :"+ arr1[5]);
System.out.println("arr2 :"+ arr2[5]);
System.out.println("arr1 :"+ arr2[0]);
}
2. 数组作为方法的参数
//示例
class HomeWork1 {
public static void main (String[] args){
//定义一个数组 int类型 ,变量名为array 长度为10
int[] array = {10, 8, 35, 67, 31, 25, 11, 30, 28, 99};
//定义一个需要查找的元素值
int find = 11;
//调用方法将方法的值赋值给index
//indexof为方法名(数组名,需要查询的元素值);
int index = indexof(array,find);
//判断index的值大于0则输出该值
if (index >= 0){
System.out.println("index :"+ index);
} else {
System.out.println("没有找到该元素");
}
}
/**
* 在指定数组中,查询指定元素find所在的下标位置,找到返回值等于0,没有找到返回-1
*
*@param arr 查询数据的源数据数组,int类型数组
*@param find 指定在数组中查询的数据,也是int数据类型
*@reyurn index 找到指定元素,返回值大于等于0,否则返回-1
*/
public static void indexof(int[] arr,int find){
//假设查询的数据不存在
int index = -1;
//循环遍历整个数组
for (int i = 1; i < arr.length; i++){
//发现数组中下标为i的袁旭和find一致,找到内容,保存下标
if (find == arr[i]){
//将i赋值给index
index = i;
break;
}
//返回index中的数据
}return index;
}
}
2.1 数组小总结
1. 数组作为方法参数固定格式
(数组类型[]数组参数名)
2. 数组作为方法的实际参数固定格式
(数组名)
3.数组名作为方法的参数,实际传递的是数组空间的首地址,跟数组地址转移的问题是一致的
4. 方法执行需要参数,如果没有给予对应格式的实际参数,直接报错。
2.2 小练习
/*
需求
完成一个方法,给int类型数组保存的元素进行赋值操作,所有元素内容全部赋值为100
*/
class HomeWoek2 {
public static void main (String[]args){
//定义一个int类型的数组,长度为18
int [] intarray = new int[18];
//调用方法并使用intarray的数组
assignIntArray(intarray);
//利用循环展示intarray数组
for(int i = 0; i < intarray.length; i++ ){
System.out.println(intarray[i] + " ");
}
}
/**
*@param arr int类型数据
*
* 传入一个int类型的数据,把当前数组的所有元素全部赋值为100
*/
public static void assignIntArray (int[] arr){
//利用循环可以遍历数组来进行赋值操作
for(int i = 0; i < arr.length; i++){
arr[i] = 100;
}
}
}
/*
需求:
使用A数据,替换指定数组中B数据
例如:
原始数据:
int[] arr = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
替换所有元素值 == 5 ==> 100
结果 Result
int[] arr = {1, 2, 3, 4, 100, 1, 2, 3, 4, 100}
*/
class HomeWork3 {
public static void main (String []args){
int[] arr = {15, 18, 55, 78, 60, 654, 846, 15, 36, 10};
replace(arr,10,88);
for(int i = 0;i < arr.length; i++){
System.out.println(arr[i]+" ");
} System.out.println();
}
/**
* 使用newnum数据 来替代指定数组arr中olenum的数据
*
*@param arr 指定int类型的数据
*@param oldnum 被替换的数据
*@param newnum 替换使用的新数据
*/
public static void replace (int[] arr,int newnum,int oldnum){
for (int i = 0; i < arr.length;i|++){
if(oldnum == arr[i]){
arr[i] = newnum;
}
}
}
}
/*
需求:
存在一个int类型数组,使用方法逆序数组中的元素
例如:
int[] arr =
{1, 2, 3, 4, 5};
执行之后
{5, 4, 3, 2, 1};
*/
class HomeWork4 {
public static void main (String []args){
int[] arr = {1, 2, 8 , 9, 61, 81, 28, 65, 15, 10};
reverse(arr);
for(int i = 1; i < arr.length ; i++){
System.out.println(arr[i]+ " ");
}
/**
*数值逆序
*
*@param arr需要被逆序的一个int类型的数组
*/
}
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;
}
}
}