递归 + 数组

递归 + 数组,第1张

递归 + 数组 一、方法递归 1.1 递归的概念:

一个方法在执行过程中调用自身,就称为“递归”。

e.g

public static int fac(int n){
    if(n == 1){
        return 1;
    }
    int tmp = n * fac(n - 1);
    return tmp;
}
public static void main(String[] args){
    System.out.println(fac(3));
}

递归的代码横向思考,纵向执行。 

二、数组 2.1 数组的概念:

一组连续的空间,存放的是一组相同数据类型的数据。

2.2 创建数组: 2.2.1 动态初始化:

数据类型[] 数组名称 = new 数据类型[]({...})

e.g

int[] array = new int[5];

int[] array = new int[]{1,2,3,4,5};

2.2.2 静态初始化:

数据类型[] 数组名称 = {初始化数据};

e.g int[] array = {1,2,3,4,5};

2.3 数组的使用: 2.3.1 获取数组长度:
int[] array = {1,2,3,4,5};
System .out.println(array.length);
2.3.2 访问数组中的元素:
int[] array = {1,2,3,4,5};
System .out.println(array[1]);
2.3.3 修改元素:
int[] array = {1,2,3,4,5};
array[0] = 45;
2.3.4 增强for循环:
for(int val:array){
   System.out.print(val + " ");
} 
2.3.5 返回指定数组的内容的字符串表示形式:
int[] array = {1,2,3,4,5};
String ret = Arrays.toString(array);

结果为:[1,2,3,4,5] 

 2.3.6 填充:

1、用n填充数组:

Arrays.fill(数组名,n);

2、某数组中的下标i到j用n填充: 

Arrays.fill(数组名,i,j,n);   (j下标对应的元素不填充)

2.4 数组作为方法的参数:

e.g

public static void func(int[] array){
    array = new int[5];
}
public static void mian(String[] args){
    int[] array = {1,2,3,4,5,6};
    func(array);
    System.out.println(Arrays.toString(array));
}

引用就是一个变量,也可以理解成一个指针。

在参数传递的过程中,传的确实是引用,但是并没有通过引用修改原来的对象内容,只是修改了当前这个引用的指向。

2.5 数组拷贝: 2.5.1 
copy[i] = array[i];
 2.5.2 *** 作数组的工具类Arrays
int[] ret1 = Arrays.copyOf(数组名,长度);//需拷贝的数组名,新的数组的长度
int[] ret2 = Arrays.copyOf(数组名,from,to);//局部拷贝 [from,to)
2.5.3 
System.arraycopy(需拷贝的数组,从原数组哪里开始拷,目标数组,拷贝到目标数组的哪个下标,拷贝长度);
2.5.4 克隆:产生array指向的对象的副本
int[] array = {1,2,3,4};
int[] ret = array.clone();
三、二维数组

二维数组是特殊的一维数组

3.1 基本语法

数据类型[] [] 数组名称 = new 数据类型[行数][列数]{初始化数据};

e.g

int[][] array = {{1,2,3},{4,5,6}};
int[][] array = new int[1][3];
int[][] array = new int[][]{{1,2,3},{4,5,6}};
3.2 不规则的二维数组:

二维数组可以不写列数,但一定要写行数。 

e.g

int[][] array = new int[2][];
array[0] = new int[3];    //第1行有3列
array[1] = new int[5];    //第2行有5列

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存