数组的概述数组
1 、数组能够当作多个相同类型数据组合,对这些数据的统一管理;spa
2 、数组变量属于引用类型,数组也能够当作是对象,数组中的每个元素至关于该对象的成员变量;code
3 、数组中的元素能够使任意的数据类型,包括基本类型和引用类型。对象
一维数组的声明blog
1 、数组的声明方式:索引
1)、数据类型[] 变量名;内存
如:double[] scores; String[] names;ci
2)、数据类型 变量名[]; 字符串
如:double scores[]; String name[];input
通常状况下都是用第一种方式声明数组,格式明显。
二、初始化数组:
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};
三、数组的访问:
1)、根据下标或索引去查找,数组下标从0开始;
2)、整型int数组若是没有赋值默认值为0;字符串默认值为null;double和float默认值为0.0;char、byte和short型默认值为0(这三种类型的数据将自动升级成整型数据类型,故默认值为0);boolean型默认值为false;
3)、数组访问不能超出数组的长度减1;超出下标将会报数组下标越界的错误;
4)、经过变量名.length来获取数组的长度。
示例代码:
一、向一个有序数组中插入输入的数据,插入后的数组仍然是一个有序数组
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 }