第七章 数组

      7.1、数组概述

  7.1.1、为什么需要数组

      答:有时候需要存储或处理一系列数据,数组就可以充当这样的角色,它在内存中是相连的数据,并且在栈中的引用只有一个,

    如果不用数组,那数据就得一个一个定义一个一个声明,浪费内存空间,显然不合理。

  7.1.2、java中的数组

    答:数组的结构和基本要素:

        1、标识符:数组的名称,用于区分不同数组。

        2、数组元素:向数组中存放的数据。

        3、元素下标:对数组元素进行编号。

        4、元素类型:数组元素的数据类型。

7.2、如何使用数组

  7.2.1、使用数组的步骤

    答: 语法:数据类型[] 数组名             数据类型 数组名[]      数组名[下标值]

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

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

  7.2.2、常见错误

    答:1、数组下标从0开始

      2、数组访问越界

  7.2.3、上机练习

    答:public class Goodsput{

        public static void main(String[]arg){

          String[] goods=new String[]{"fdgjf","jyhty","iyof","","jykyukl","klyuoyt","syhhffg"};

        System.out.println("本次活动特价商品有:");

        for(int i=0;i<goods.length;i++){

          System.out.println(goods[i]);

        }

      }

    }

7.3、数组应用

  7.3.1、数组排序

    答:import java.util.*;import java.util.Arrays;

      public class ScoreSaort{

        public static void main(String[]args){

            int[] scores=new int[5];

            Scanner input=new Scanner(Sysem.in);

            System.out.println("请输入5为同学的学习成绩:");

            for(int i=0;i<scores.length;i++){

              scores[i]=input.nextInt();

            }

          Arrays.sort(scores);

          System.out.println("学生成绩按升序排序");

          for(int i=0;i<scores.length;i++){

             System.out.println(scores[i]+" "); 

          }

        }

     }

  7.3.2、上机练习

    答:import java.util.Scanner;import java.util.Arrays;

      public class ziMu{

        public static void main(String[]args){

          String[] zimu=new String[8];

        System.out.println("请输入8个字符:");

        for(int i=0;i<zumu.length;i++){

          System.out.println(zimu[i]);

        }

        Arrays.sort(zumu);

      System.out.println("升序字符序列:");
        for(int i=0;i<ziMu.length;i++){
           System.out.println(ziMu[i]+"");
       }
          System.out.println("逆序字符序列:");
        for(int i=7;i>=0;i--){      
           System.out.println(ziMu[i]+"");
      }

      }

    }

  7.3.3、求数组最大值

    答:import java.util.Scanner;

      public class MaxScore{

        public static void main(String[]args]);

        int[] score=new int[15];

        int max=0;

        System.out.println("请输入学生成绩:");

        for(int i=0;i<score.length;i++){

          score[i]=input.nextInt();

       }

      max=score[0];

      for(int i=1;i<score.length;i++){

        if(score[i]>max){

          max=score[i];

        }

        System.out.println("成绩坐分:");

      }

     }

  7.3.4、上机练习

    答:import java.util.*;

    public class zuiXiaoZhi{

      public static void main(String[] args){

        int[] num=new int[54];

          int min=0;

        Scanner input=new Scannet(System,in);

         System.out.println("请输入4家店的价格");

        for(int i=0;i<num.length;i++){

          System.out.println("第"+(i+1)+"家店的价格是:");

            num[i]=input.nextInt());

      }

      min=num[0];

      for(int i=0;i<num.length;i++){

        if(num[i]<min){

          min=num[i];

        }

      }

      System.out.println("最低价格是:"+min);

   }

}

7.4、深入了解数据类型

  7.4.1、基本数据类型

    答:对于基本数据类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值。赋值操作传递的是变量的值,

  改变一个变量的值不会影响另一个变量的值。

  7.4.2、引用数据类型

    答:public class ReferenceTypeDemo{

        public static void main(String[]args){

          int[] infoZhang=new int[]{170,60};

          int[] infoLi=infoZhang;

          System.out.println("去年张的身高是"+infoZhang[0]+"体重是"+infoZhang[1]+"公斤");

          infoLi[0]=180;

          infoLi[1]=70;

        System.out.println("去年张的身高是"+infoZhang[0]+"体重是"+infoZhang[1]+"公斤","黎明的身高是"+infoLi[0]+"体重是"+info[1]);

    }

  }

  7.4.3、上机练习

    答:import java.util.Scanner;

      public class shangji5 {  

        public static void main(String[]args){

           int[]points=new int[5];  //积分组  

         int[] newpoints=new int[5];

      Scanner input=new Scanner(System.in);

      System.out.println("请输入5位会员的积分:");   

      for(int i=0;i<points.length;i++){   

        System.out.println("第"+(i+1)+"次会员积分:"); //历史积分

             points[i]=input.nextInt();   

      }

      System.out.println("序号"+"\t\t\t历史积分"+"\t\t\t新年积分");   

    for(int i=0;i<points.length;i++){    

        newpoints[i]=points[i];

         newpoints[i]=newpoints[i]+500; //赠送500积分   

       System.out.println((i+1)+"\t\t\t"+points[i]+"\t\t\t"+newpoints[i]);

      }   //(i+1):从1开始,从零开始不加1

   }

}  

本章总结

  答:数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须相同的数据类型。

    数组中元素通过数组的下标进行访问,数组下标从0开始。

    一维数组可用一个循环动态初始化,或者用一个循环动态输出数组中的元素信息。

    int,double,char,boolean类型是基本数据类型。

    String和数组是引用数据类型。

本章作业

  答:import java.util.Scanner;

    public class NumberCount {

 /**   * 统计合法数字(1,2,3)和非法数字的个数   */  

    public static void main(String[] args) {

        int[] num = new int[10]; //数字数组

        int[] count = new int[4]; //统计每个数出现的个数

      Scanner input = new Scanner(System.in);   

    System.out.println("请输入10个数");

       for(int i = 0; i < num.length; i++){    

        num[i] = input.nextInt();

         switch(num[i]){   

           case 1:   

                 count[0]++;

                 break; 

            case 2:    

               count[1]++;     

              break;   

           case 3:    

               count[2]++;   

                break;  

            default:    

               count[3]++;    

               break;   

         }  

       }  

     System.out.println("数字 1 的个数:" + count[0]);  

     System.out.println("数字 2 的个数:" + count[1]);  

     System.out.println("数字 3 的个数:" + count[2]);  

     System.out.println("非法数字的个数:" + count[3]);  }

}

原文地址:https://www.cnblogs.com/lanliying/p/2818435.html