Java基础知识03-数组

来源:互联网 发布:windows程序开发工具 编辑:程序博客网 时间:2024/05/19 17:09

package cn.aparke.bbs.day04;

import java.util.Scanner;

/**
* 数组Array:指的是一组
* 按照既定顺序存放的数据类型相同的
* 且具有固定长度的连续存储的数据
*
* 数组的特点:
* 1.数据类型相同
* 2.按照顺序连续存储
* 3.固定的长度
*
* 1 数组的语法:
* 定义数组的符号为[],在程序中但凡看到[],就应该知道用到了数组Array
* 如果是一个[]那么就表示该数组为一维数组,两个[][]就是二维数组,依次类推
*
*
* 1.1 定义一维数组的第一种方式如下:
* 数据类型 [] 数量名; // 先声明
* 数组名 = new 数据类型 [数组长度]; // 分配存储空间
* 数组在java中还可以用如下定义
* 数据类型 数量名[]; // 先声明
* 数组名 = new 数据类型 [数组长度]; // 分配存储空间
*
* 注意:数组一旦定义并分配存储空间后,都会有默认值
* 1.对于数字类型的数组,它们的默认值为0或者0.0
* 2.对于字符类型的数组,它们的默认值为空字符
* 3.对于布尔类型的数组,它们的默认值为false
* 4.对于其他的对象类型的数组,它们的默认值null
*
* 如果要获取到数组的长度,可以通过数组名.length属性来得到
* 数组的引用是从下标(索引)为0开始的,第一个数组元素的下标(索引)为0
* 所以引用第一个数组元素的语法为 数组名[0]
* 最后一个元素的下标为 数组名.length-1
*
* 1.2 定义一维数组的第二种方式如下:
* 数据类型 [] 数量名 = new 数据类型 [数组长度]; // 声明并分配存储空间
* 数据类型 数量名[] = new 数据类型 [数组长度]; // 声明并分配存储空间
*
* 1.3 定义一维数组的第三种方式如下:
* 数据类型 [] 数量名 = {数据1,数据2,…数据n}; // 声明并赋值
* 数据类型 数量名[] = {数据1,数据2,…数据n}; // 声明并赋值
*
* 注意:此时数组的长度就是数据的个数.
* 还要特别注意 第三种定义数组的方式只能是一条语句完成,不能分开
*
* 1.4 定义一维数组的第四种方式如下:
* 数据类型 [] 数量名 = new 数据类型[] {数据1,数据2,…数据n}; // 声明并赋值
* 数据类型 数量名[] = new 数据类型[] {数据1,数据2,…数据n}; // 声明并赋值
*
* 千万注意:不能显示的将数组的长度确定,长度是根据值的个数确定的
*
* 一维数组只需要一个循环就可以对数据元素进行遍历和操作
*/

public class TestArray1 {    public static void main(String[] args) {          /*           * 通过键盘输入一个数字,然后在对应的数组查找,看数组中是否           * 包含该数字           *            */         int nums [] = {8,4,2,1,23,344,12};         Scanner sc = new Scanner(System.in);         //开始进行查找,下面的处理不可取,课下请大家思考一下!!!         boolean isFind = false;  //标记,默认为false表示没找到             System.out.print("请输入一个数字:");             int digit = sc.nextInt();         for (int i = 0; i < nums.length; i++) {              if(digit == nums[i]){                 // System.out.println("找到了:"+nums[i]);                  isFind = true;                   break;              }              /*else{                  System.out.println(nums[i]+"没找到");              }*/        }         //在循环之外根据对应的标记来输出结果        String msg = isFind ? digit+"找到了" :  digit+"没找到";         System.out.println(msg);        //找最大值           /**         * 思路:         *    现在有7个数  int nums [] = {8,4,2,1,23,344,12};         *    先取出一个数,然后和剩下的6个数一一比较,如果发现自己比别的数据要小         *    就将别的数据交换给自己,循环结束后最大数就找到了         *    就好比 我们电视剧或电影中的 "比武招亲"         *    首先上一个人到擂台,其他的依次上台挑战,最后站在擂台上的那个man         *    就是她老公         *          */        int max = nums[0]; //假设第一个元素为最大值        //那么当前的max将会和剩下的6个数进行比较        for (int i = 1; i < nums.length; i++) {            if(max<nums[i])            {                max = nums[i];            }        }      System.out.println("在nums数组中最大值为:"+max);    }}class TestArray2 {public static void main(String[] args) {  int[]scores ;  //先声明一个名字叫scores的整型数组  scores = new int[5]; //为该数组分配长度5的连续存储空间          String scores1 [] ;  //先声明一个名字叫scores1的整型数组  scores1 = new String[6]; //为该数组分配长度5的连续存储空间 for (int i = 0; i <scores1.length; i++) {System.out.println(scores1[i]);}    int [] stuIds = new int[3]; Scanner sc = new Scanner(System.in);//动态录入学生编号 for (int i = 0; i < stuIds.length; i++) { //字符串中从左往右执行的时候如果对应的表达式做加法运算时,表达式的左边如果是字符串 //那么对应的表达式中的"+"号此时就不再是加法运算符了,而变成了连接符 //为了避免出现连接符可以将对应的表达式放到“()”中优先执行运算System.out.println("请输入第"+(i+1)+"个学生的编号:");stuIds[i] = sc.nextInt();} //输出数组中的元素数据 for (int i = 0; i < stuIds.length; i++) { System.out.print(stuIds[i]+"  ");} int nums [] = {8,4,2,1,23,344,12};}}