初识java数组与递归思想

数组

数组的初始化:
    1.静态初始化:    值由我们来给定,长度通过系统来计算。
        格式举例:   int[] arr=new int[]{这里是我们给定的值}
        静态初始化的简写格式:
                    int[] arr={这里是我们给定的值};这种方式用法的比较多。
    2.动态初始化:    长度有我们来给定,值有系统初始化默认值。各个类型对应的默认值不一样,我们    下面会介绍。
        格式举例:   int[] arr=int[我们指定的长度];
    注意:
        数组类型的变量有两种定义方式:
            1.int[] a;
            2.int a[];
        推荐使用第一种定义方式。
匿名数组:
    格式:new int[]{值}
数组初始化默认的值介绍每一个数组对象一开始都拥有自己的默认值:
            byte,short,int,long   默认值是   0
            float,double           默认值是   0.0
            char                    默认值是  '\u0000'
            boolean                 默认值是   false
            引用数据类型              默认值是   null
    注意:
        数组属于引用类型(对象),引用数据类型的默认值为null(null也是一种引用类型)
二维数组:
    二维数组就是数组嵌套数组。
    二维数组的创建格式:
        动态初始化:int[][] arr=new int[长度][长度]
                  int[][] arr=new int[长度][] 这种方式没有给定一维数组的长度那么数组类初始化化的时候就会给一个默认的值null(因为是引用数据类型)。
        静态初始化:
                  int[][] arr=new int[][]{值}{值}
                  简写:int[][] arr={{},{},{}}
二维数组的便利:
    方法一:使用for、while进行循环。
    方法二:
           可以使用for each循环,这种方式不会打印出索引。
           使用格式for(int element:数组)
                  System.out.println(element)
           使用案例:
                   int[] arr={1,3,45,65,7};
                   for(int a:arr) System.out.println("a = " + a);

递归思想总结

递归:
    体现的是一种拆分和合并的思想,然后从拆分的最后一级一级推出结果.
    举个例子5!:
            public static void main(String[] args) {
                int res=jieCh(5);
                System.out.println("res = " + res);
           }
            static int jieCh(int n){
                if(n==1){     //这里是关键,这里是拆分到最后的实实在在的值,是计算的开始
                   return 1;
                }else {
                   return n*jieCh(n-1);   //这里是逻辑
                }
           }

}

原文地址:https://www.cnblogs.com/project-zqc/p/11637970.html

时间: 2024-07-31 20:36:19

初识java数组与递归思想的相关文章

转(Java中的递归思想)

解释:程序调用自身的编程技巧叫做递归. 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量.递归的能力在于用有限的语句来定义对象的无限集合. 递归的三个条件: 边界条件 递归前进段 递归返回段 当边界条件不满足时,递归前进:当

Java中的递归思想

转自:https://www.cnblogs.com/xiaosen992608/p/4037682.html 递归: 递归的概念:方法自身调用自身则称为递归. 递归的分类: 间接递归:方法A调用方法B,方法B调用方法C,方法C调用方法A. 直接递归: 方法A调用方法A.(常用) 递归的注意事项: 递归一定要出口:结束递归的条件. 递归次数不要太多. 如果递归不结束,则会报错. java.lang.StackOverflowError: 栈内存溢出错误 递归会内存溢出隐患的原因: 方法不停地进栈

java中的递归思想及应用

递归就是自己调自己,最需要注意的就是结束条件,否则可能就是死循环,导致内存溢出 public T a(Object x,Object y) { if(条件true) { a(x1,y1); } else { return f(x,y); } } 例如: 1.求阶乘 5!=5x4x3x2x1 分析:递归是一层一层推进,第一层是 5*4,第二层4*3,第三层,3*2,递归入参分别是5,4,3,2,1,当为1时返回1,递归终止 public int f(n) { if(n=1) { return 1:

关于回调和递归思想的理解

1) 面向过程的递归思想在面向对象的编程世界中的递归调用就是回调思想.它们两个的区别就是多了一个封装了方法和属性的对象.回调函数实参传递的是一个函数的指针,其实递归调用也是用函数的相同地址进行递归循环处理数据的.递归函数的原理就是函数的参数值不断地变化,从而不断的重新回到函数的起始地址处根据传递的参数值不断地处理数据.回调函数的原理就是把函数当做一个可以传递的实参赋值给自定义的回调函数的形参,实际传递的是定义函数的地址. a) 理解回调函数最好把函数和类型对象相当,因为他们都是数据变量的集合,都

分治策略结合递归思想求最大子序列和

我的主力博客:半亩方塘 对于 <数据结构与算法分析--C语言描述> 一书第 20 页所描述的算法 3,相信会有很多人表示不怎么理解,下面我由具体问题的求解过程出发,谈谈我自己的理解: 首先,什么是分治法呢?所谓 分治法,就是 将一个问题的求解过程分解为两个大小相等的子问题进行求解,如果分解后的子问题本身也可以分解的话,则将这个分解的过程进行下去,直至最后得到的子问题不能再分解为止,最后将子问题的解逐步合并并可能做一些少量的附加工作,得到最后整个问题的解.在求解原来整个问题的算法思想,与求解每一

Java中递归的优缺点,Java写一个递归遍历目录下面的所有文件包括子文件夹里边的文件。

题目: 遍历出aaa文件夹下的文件 首先分析思路: 1.首先判断这个文件夹是否为文件,通过isFile()函数可以判断是否为文件. 2.然后通过isDirectory判断是否为目录. 3.如果是目录就使用递归遍历目录 代码如下: 1 import java.io.File; 2 3 public class ZuoYe { 4 public static void main(String[] args) { 5 //创建file对象 6 File f=new File("d://新建文件夹&qu

深入理解 Java 数组

目录   1. 简介  2. 声明数组  3. 创建数组  4. 访问数组  5. 数组的引用  6. 泛型和数组  7. 多维数组  8. Arrays 类  9. 小结  10. 参考资料 ?? 本文已归档到:「javacore」 ?? 本文中的示例代码已归档到:「javacore」 1. 简介 1.1. 数组的特性 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同.几乎所有程序设计语言都支持数组. 数组代表一系列对象或者基本数据类型,所有相同的类型

Atitit 表达式原理 语法分析&#160;原理与实践 解析java的dsl &#160;递归下降是现阶段主流的语法分析方法

Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析方法2 递归下降是现阶段主流的语法分析方法,2 于是我们可以把上面的语法改写成如下形式: 1)       Operator="+" | "-" | "*" | "/" 2)       Expression=<数字>

Java 数组学习笔记

数组的简单认识 简单理解java数组,就是可以创建并组装它们,通过使用整型索引值访问它们的元素,并且它们的尺寸不能改变,这里的它们就是数组. 数组的特殊性 在java中有很多方式去持有对象,那么数组的与众不同点在哪里? 数组与其他种类的容器区别有三个方面:效率.类型和保存基本类型的能力. 在java中,数组是一种效率最高的存储和随机访问对象引用序列的方式.数组就是一个简单的线性序列,这使得元素访问非常迅速.但是为之付出的代价就是数组对象的大小被固定,并且在其生命周期中不可改变. 在泛型之前,其他