Java基础之数组

  数组的概述

    1 、数组可以看成多个相同类型数据组合,对这些数据的统一管理;

    2 、数组变量属于引用类型,数组也可以看成是对象,数组中的每一个元素相当于该对象的成员变量;

    3 、数组中的元素可以使任意的数据类型,包括基本类型和引用类型。

  一维数组的声明

    1 、数组的声明方式:

      1)、数据类型[] 变量名;

        如:double[] scores;     String[] names;

       2)、数据类型 变量名[]; 

        如:double scores[];     String name[];

      一般情况下都是用第一种方式声明数组,格式明显。

    2、初始化数组:

      1)、数据类型[] 变量名={直接赋值};

        如:int[] number = {1,2,’A’};

      2)、数据类型[] 变量名 = new 数据类型[长度];

        如:int[] number = new int[5];

      3)、数据类型[] 变量名 = new 数据类型[]{赋值};

        如:int[] number = new int[]{1,2,3}

      4)、先声明后初始化,一般只能用第二种和第三种方式,就是先在内存空间中开辟一块内存空间才能使用;

        如:int[] num; num = new int[5];   或者: int[] num;  num = new int[]{1,2,3};

    3、数组的访问:

      1)、根据下标或索引去查找,数组下标从0开始;

      2)、整型int数组如果没有赋值默认值为0;字符串默认值为null;double和float默认值为0.0;char、byte和short型默认值为0(这三种类型的数据将自动升级成整型数据类型,故默认值为0);boolean型默认值为false;

      3)、数组访问不能超出数组的长度减1;超出下标将会报数组下标越界的错误;

       4)、通过变量名.length来获取数组的长度。

  示例代码:

    1、向一个有序数组中插入输入的数据,插入后的数组仍然是一个有序数组

 

 1 public class InsertNumToArray {
 2 
 3     public static void main(String[] args) {
 4         System.out.println("请输入一个整数:");
 5         Scanner sc = new Scanner(System.in);
 6         int number = sc.nextInt();
 7         
 8         int[] num = { 19, 29, 39, 49, 59, 69, 79, 89, 99 };
 9         int[] nums = new int[num.length + 1];
10         int insertIndes = 0;
11         for (int i = 0; i < num.length; i++) {
12             if (num[i] > number) {
13                 insertIndes = i;
14                 break;
15             }else{
16 //                if(i == num.length - 1){
17 //                    insertIndes = i + 1;
18 //                }
19                 insertIndes = num.length;
20             }
21         }
22         
23         for (int j = 0; j < nums.length; j++) {
24             if (j >= insertIndes) {
25                 if (j == insertIndes){
26                     nums[j] = number;
27                 }
28                 if (j + 1 < nums.length){
29                     nums[j + 1] = num[j];
30                 }
31             } else {
32                 nums[j] = num[j];
33             }
34         }
35         
36         for (int i = 0; i < nums.length; i++) {
37             System.out.print(nums[i] + " ");
38         }
39         
40     }
41 
42 }

 

  关于二维数组问题,二维数组其实就是将数组当中的每一个元素都是数组组成的集合。

    具体可参考下面的部分代码示例:

 1 private static void searchCity() {
 2         String[] citys = { "四川", "云南", "浙江", "江苏" };
 3         String[][] message = new String[][] { { "成都", "绵阳", "自贡" }, { "丽江", "大理", "昆明" }, { "杭州", "嘉兴", "温州", "宁波" },
 4                 { "苏州", "张家港", "南京" } };
 5 
 6         for (int i = 0; i < citys.length; i++) {
 7             System.out.print(i + 1 + "、" + citys[i] + "\0");
 8         }
 9 
10         System.out.println();
11         System.out.println("请输选择省份对应的序号:");
12         Scanner input = new Scanner(System.in);
13         int number = input.nextInt();
14 
15         System.out.println("您选择的省份是: " + citys[number - 1] + "省\n可选择的城市如下所示:");
16         for (int i = 0; i < message[number - 1].length; i++) {
17             System.out.print(i + 1 + "、" + message[number - 1][i] + "\0");
18         }
19 
20         System.out.println();
21         System.out.println("请选择对应的城市序号:");
22         int cityNumber = input.nextInt();
23         System.out.println("您选择的是:" + citys[number - 1] + "省" + message[number - 1][cityNumber - 1]);
24     }
25 
26     /**
27      * 猜数字
28      */
29     private static void guessTheNumber() {
30         int number = 20;
31         System.out.println("请输入一个数字:");
32         Scanner sc = new Scanner(System.in);
33         boolean isGuess = false;
34         do {
35             int guessNum = sc.nextInt();
36             if (guessNum == number) {
37                 System.out.println("恭喜你猜对了!");
38                 isGuess = true;
39             } else if (guessNum > number) {
40                 System.out.println("您猜的数字大了,重新输入:");
41                 isGuess = false;
42             } else {
43                 System.out.println("您猜的数字小了,重新输入:");
44                 isGuess = false;
45             }
46         } while (!isGuess);
47     }

 

 

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值