java基础第五章

一、        什么是数组及其作用?

定义:具有相同数据类型的一个集合

作用:存储连续的具有相同类型的数据

二、        java中如何声明和定义数组

2.1 声明和定义的语法:

数据类型[ ] 数组名;( int[ ] nums ; )   或 数据类型 数组名[];  ( int nums[ ] ;)

2.2  为数组分配空间

  数组名=new 数据类型[数组的长度]; ( nums=new int[5] ;)

2.3  声明数组,同时分配空间

数据类型[]数组名= new 数据类型[数组的长度];

数据类型 数组名[]=new 数据类型[数组的长度];

( int[ ] nums=new int[5] ;)   ( int nums[ ]=new int[5] ;)

三、        如何读取数组中的元素— 通过下标(索引)来获取

  下标(索引)是从0开始,最大下标为  数组长度-1

  下标越界:ArrayIndexOutOfBoundsException

  int类型的数组,每个元素的默认值为0

  String类型的数组,每个元素的默认值为null

   3.1、获取单个元素的值

  数据类型 变量名=数组名[下标];

3.2、循环读取数组中的每个元素

  数组的长度:数组名.length 属性自动计算

    for(int i=0;i<数组名.length ;i++){

数组名[i];

      }

四.如何给数组中的元素赋值

  方式1(赋予数组固定值):

    声明数组,分配空间,并赋值

    (数组的长度由值的个数决定)

  数据类型  数组名[]=new 数据类型[]{值1,值2…值n};

    数据类型 []数组名={值1,值2…值n};

    说明:[]中括号可以放在数组名前面或后面

  方式2:动态的给数组赋值(从键盘中输入)

Scanner  input = new Scanner(System.in);

for(int i=0;i<数组名.length ; i++){

String类型的数组名[i]= input.next ();

int类型的数组名[i]= input.nextInt ();

double类型的数组[i]=input.nextDouble();

}

五、数组排序问题

使用Arrays. sort(数组名);

实现对数组中的元素按升序或降序输出

六、求最大值或最小值

实现思路:将数组中的第1个元素的值,假想成最大(小)值【赋值】;然后数组中的每个元素和假想的这个最大(小)数进行比较,如果数组中的某个元素的值,比最大(小)数要大(小),将该元素的值,保存到假想的最大(小)值对应的变量中

public class shuzu {
    public void D(int []num){
        int ha []=new int[10];
        for(int j=0;j<ha.length;j++){
            int index=(int)(Math.random()*100);
            ha[j]=index;
            System.out.print(ha[j]+" ");
        }
        int max=ha[0];
        int min=ha[0];
        for(int i=1;i<ha.length;i++){
            if(max<ha[i]){
                max=ha[i];
            }
            if(min>ha[i]){
                min=ha[i];
            }
        }
        System.out.println("\n"+"最大值为:"+max);
        System.out.println("最小值为:"+min);
    }
}

八、求数组中最值的位置

1、            在循环的外面,定义变量k(赋值为0),用于保存最值的下标

2、            在循环中,比较找出最值的同时,给变量k赋值

public static  void main(String [] args){
        Scanner input=new Scanner(System.in);
        char [] ha={‘a‘,‘c‘,‘u‘,‘b‘,‘e‘,‘p‘,‘f‘,‘z‘};
        System.out.print("原字符序列:");
         for (int i=0;i<ha.length;i++){
             System.out.print(ha[i]+" ");
         }
         Arrays.sort(ha);//对数组进行降序
         System.out.print("\n升序排列后:");
         for (int i=0;i<ha.length;i++){
             System.out.print(ha[i]+" ");
         }
         char he[]=new char[9];//创建一个新数组,进行储存数据
         for (int i=0;i<ha.length;i++){
             he[i]=ha[i];
         }
         System.out.println("\n插入的字符是:");//输入新数据
         char a=input.next().charAt(0);
         int index=he.length-1;//保存新数据插入的位置
         for (int i=0;i<he.length;i++){
             if(a<he[i]){//对数字进行判断
                 index=i;//找到新元素的下标位置
                 break;
             }
         }
         for (int s=he.length-2;s>=index;s--){
             he[s+1]=he[s];  //将元素从后移动
         }
         he[index]=a;//将输入的值赋到数组中
         System.out.println("\n插入的下标是:"+index);
         for (int k=0;k<he.length;k++){
             System.out.print(he[k]+" ");
         }
    }

八、斐波那契数列

1,1,2,3,5,8,13,21,34……求第20个数字的值?(使用循环)

规律:第i个 + 第(i+1)个 = 第(i+2)个

步骤1:定义数组,数组长度为20

int []nums=new int[20];

步骤2:根据规律,获取第0个和第1个数的初值

nums[0]=1;

nums[1]=1;

步骤3:通过循环,给数组中的所有元素赋值

for ( int i=0;i<nums.length-2;i++){

nums [i+2]=nums[i]+nums[i+1];

}

for(int i=2;i<nums.length;i++){

nums[i]=nums[i-2]+nums[i-1];

}

步骤4:输出nums[19]的值

时间: 2024-11-07 21:36:11

java基础第五章的相关文章

java基础(二章)

java基础(二章) 一,变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则 l  必须以字母.下划线 _ .美元符号 $ 开头 l  变量中,可以包括数字 l  变量中,不能出现特殊的符号,空格 l  java中的关键字(红色字体),不能做变量名 3.变量命名,遵循 骆驼命名法(变量由1个以上的单词组成,第1个单词首字母小写,后面单词的首字母大写) 二, 数据类型 a)        数字(整型int(整数).双精度浮点型double(小数)) b)        字符型(c

java基础(一章)

java基础(一章) 1.            java是一种面向对象的高级编程语言. 2.            java包括:              javase(java基础)               javaee(java企业级应用) 一.        用记事本编写java程序 1.               创建扩展名为.java的java源文件 2.               编译java源文件,产生扩展名为.class的字节码文件 在dos命令窗口中,输入 [ ja

java基础(三章)

java基础(三章) 一.基本if结构 1.流程图 l  输入输出 l  判断和分支 l  流程线 1.1              简单的if条件判断 if(表达式){            //表达式为true,执行{}中的代码 } 1.2              简单的if条件判断 if(表达式){            //表达式为true,执行这里 }else{            //表达式为false,这行这里 } 说明:如果if或else后面,有且仅有一行代码,{ }可以省略

java基础(四章)

java基础(四章) 一.             switch结构(开关语句)的语法 switch(表达式 ){ ------- [dream1]类型为int.char case  常量1 :    ---------[dream2]case 结构可以有多个 //语句块1 break;---------[dream3]程序跳出switch结构 case  常量n:---------[dream4]常量的值不能相同 //语句块n break; default :---------- [dream

java(第十五章)

第十五章 一.字符串类String 1.String是一个类,位于java.lang包中 2.创建一个字符串对象的2种方式: String 变量名="值"; String 对象名=new String("值"); 3.字符串的常用方法 3.1 字符串长度--length() 3.2 判断值是否相等 equals() 3.3 判断字符串对象地址是否相同 == 3.4 忽略 大小写 判断 equalsIgnoreCase() 3.5 大小写转换 toLowerCase(

java:第五章

第五章 循环结构 1.while循环 while(条件){ //代码块 } 解释:如果条件的结果为true,那么执行代码块, 当代码块执行完后,又会执行条件, 依次循环,直到结果为false,整个循环结束. 2.程序调试 第一步:设置断点(左键双击) 第二步:debug方式好执行代码 第三步:逐条执行代码调试(F6) 第四步:检查代码(看变量值的变化) 注意:在右上角可以切换java视图和debug视图. 3.do while循环 do{ //代码块 }while(条件) 解释:先执行代码块,然

java基础 第4章 初始化和清除

第4章 初始化和清除 "随着计算机的进步,'不安全'的程序设计已成为造成编程代价高昂的罪魁祸首之一." "初始化"和"清除"是这些安全问题的其中两个.许多C程序的错误都是由于程序员忘记初始化一个变量造成的.对于现成的库,若用户不知道如何初始化库的一个组件,就往往会出现这一类的错误.清除是另一个特殊的问题,因为用完一个元素后,由于不再关心,所以很容易把它忘记.这样一来,那个元素占用的资源会一直保留下去,极易产生资源(主要是内存)用尽的后果. C++

java基础 第5章 隐藏实施过程

第5章 隐藏实施过程 "进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开." 这一点对于库来说是特别重要的.那个库的用户(客户程序员)必须能依赖自己使用的那一部分,并知道一旦新版本的库出台,自己不需要改写代码.而与此相反,库的创建者必须能自由地进行修改与改进,同时保证客户程序员代码不会受到那些变动的影响. 为达到这个目的,需遵守一定的约定或规则.例如,库程序员在修改库内的一个类时,必须保证不删除已有的方法,因为那样做会造成客户程序员代码出现断点.然而,

java基础 第2章 一切都是对象

第2章 一切都是对象 "尽管以C++为基础,但Java是一种更纯粹的面向对象程序设计语言". 无论C++还是Java都属于杂合语言.但在Java中,设计者觉得这种杂合并不象在C++里那么重要.杂合语言允许采用多种编程风格:之所以说C++是一种杂合语言,是因为它支持与C语言的向后兼容能力.由于C++是C的一个超集,所以包含的许多特性都是后者不具备的,这些特性使C++在某些地方显得过于复杂. Java语言首先便假定了我们只希望进行面向对象的程序设计.也就是说,正式用它设计之前,必须先将自己