栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

递归 + 数组

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递归 + 数组

一、方法递归 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列

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号