zoukankan      html  css  js  c++  java
  • java 基础5

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

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

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

    二、        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("
    "+"最大值为:"+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("
    升序排列后:");
             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("
    插入的字符是:");//输入新数据
             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("
    插入的下标是:"+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]的值

  • 相关阅读:
    买不到的数目
    逆波兰表达式
    颠倒的价牌
    排它平方数
    寒假作业
    搭积木
    网友年龄
    九宫重排
    格子刷油漆
    高僧斗法
  • 原文地址:https://www.cnblogs.com/qq7337531/p/6986584.html
Copyright © 2011-2022 走看看