4.一维数组

一数维组
package com.atguigu.java;
/*
 * 1.数组相关概念
 * >数组名
 * >数组元素
 * >角标、下标、索引
 * >数组的长度,元素的个数
 *
 * 2.数组的特:
 * 数组是有序的
 * 数组属于引用数据类型的变量,数组的元素可以是基本数据类型,也可以是引用数据类型
 * 创建数组对象会在内存中开辟一整块连续空间
 * 数组长度一旦确定,就不能修改
 *
 * 3.数组的分类:
 * 按照维度:一维数组、二维数组、……
 * 按照数组元素:基本数据类型、引用数据类型
 *
 * 4.一维数组的使用
 * 1)一维数组的声明和初始化
 * 2)如何调用数组的指定位置的元素
 * 3)如何获取数组长度
 * 4)如何遍历数组
 * 5)数组元素的默认初始化
 * 6)数组的内存解析
 *
 *
 */
public class ArrayTest {
 public static void main(String[] args) {
  
  //1。一维数组的生命和初始化
  int num ;//声明
  num = 10;//初始化
  int num1 = 101;//声明和初始化合一
  
  int[] ids;//声明
  //静态初始化:数组的初始化和数组元素的赋值操作同时进行
  ids = new int[]{10,11,13,14};
  
  //动态初始化:数组的初始化和数组元素的赋值操作分开进行
  String[] name = new String[5];
  
  
  //2.如何调用数组的指定位置的元素:通过角标的方式调用
  //数组的角标(索引)从0开始,到数组的长度-1结束。
  name[0] = "王明";
  name[1] = "lisi";
  name[2] = "wangwu";
  name[3] = "aa";
  name[4] = "bb";
  
  //3.如何获取数组长度
  System.out.println(name.length);
  System.out.println(ids.length);
  
  //4.如何遍历数组
  for(int i = 0;i<name.length;i++) {
   System.out.println(name[i]);
  }
  
  //5.数组元素的默认初始化
  //    数组元素是整型:0
  //    数组元素是浮点型:0.0
  //    数组元素是char型:0或"u0000",而非‘0’
  //    数据类型是boolean型:false
  
  //   数据类型是引用数据类型:null
  int[] arr = new int[4];
  for(int i = 0; i < arr.length; i++) {
   System.out.println(arr[i]);
  }
  
 }
 
}
一维数组的内存解析(粗略)
 
package com.atguigu.exec;
import java.util.Scanner;//导包快捷键 ctrl+shift+o
/*
 * 从键盘读入学生成绩,找出最高分,并输出学生成绩等级。
 * >成绩>=最高分-10  等级为A
 * >成绩>=最高分-20  等级为B
 * >成绩>=最高分-30  等级为C
 * >其余                              等级为D
 *
 *
 */
public class ArrayDemo {
 
 public static void main(String[] args) {
  
  //1.使用Scanner,读取学生个数
  System.out.println("请输入学生人数:");   //任何位置使光标换行:shift+回车 
  Scanner scan = new Scanner(System.in);      //使光标在上面一行换行:ctrl+shift+回车
  int number = scan.nextInt();                //可以scan.nextInt();+ctrl+1
  
     //2.创建数组,存储学生成绩,动态初始化
  int[] num = new int[number];
  
  //3.给数组中的元素赋值
  System.out.println("请输入"+number+"个成绩");
  for(int i = 0;i < number;i++) {
   num[i] = scan.nextInt();  
  }
  
  //4.获取数组中的元素的最大值
  int max = num[0];
  for(int i = 1; i < number; i++) {
   if(num[i]>max) {
    max = num[i];
   }
  }
  System.out.println("最高分是:" + max);
  //3.4 优化
  /*
    int max = num[0];
    System.out.println("请输入"+number+"个成绩");
    for(int i = 0;i < number;i++) {
       num[i] = scan.nextInt();
       if(num[i]>max) {
    max = num[i];
    }
    }   
   */
  //5.根据每个学生成绩与最高分的差值,得到每个学生等级
  for(int i = 0;i < number; i++) {
   if((max-num[i]) <= 10) {
    System.out.println("student "+i+" score is "+num[i]+" grade is "+"A");
   }else if((max-num[i]) <= 20) {
    System.out.println("student "+i+" score is "+num[i]+" grade is "+"B");
   }else if((max-num[i]) <= 30) {
    System.out.println("student "+i+" score is "+num[i]+" grade is "+"C");
   }else {
    System.out.println("student "+i+" score is "+num[i]+" grade is "+"D");
   }
  }
  //视频老师
  char level;
  for(int i = 0;i < number; i++) {
   if((max-num[i]) <= 10) {
    level = 'A';
   }else if((max-num[i]) <= 20) {
    level = 'B';
   }else if((max-num[i]) <= 30) {
    level = 'C';
   }else {
    level = 'D';
   }
   System.out.println("student "+i+" score is "+
        num[i]+" grade is "+level);
  } 
 }
}
原文地址:https://www.cnblogs.com/sun1997/p/12364937.html