一、概括

数组相当于是一个容器,可以装载(存储)数据。

特点:

  1. 创建后,长度固定(不能增加或者减少容量);
  2. 创建后,存储的数据类型固定。

在内存空间中的特点:

  1. 连续空间;
  2. 在堆中创建;
  3. 每个位置有下标(索引),从0开始,到n-1。(总长度-1)

PS:程序在jvm中运行,java程序运行需要耗费电脑内存空间。

二、数组的使用

声明,创建,存取数据。

数据类型[ ] 数组名; (推荐使用这个:中括号写到数据类型后面)

或者 数据类型 数组名[ ];

一、声明:

int [ ] array = new int

ps:后面数据类型要与前面写的定义类型一致。

二、赋值:

数组名[下标] = 值;

array[0] = 2;

array[8] =222;

三、***或者一起写***:

1. 数据类型 [] 数组名 = new 数据类型 [长度];  (推荐)
eg:  int [] array = new int [10];
2. 数据类型 [] 数组名 = new 数据类型 [] {元素,元素,元素} ;
eg:int [] array1 = new int []{1,2,3,4,2};
3. 数据类型 [] 数组名 = {元素,元素,元素}; 
eg:  int [] array1 = {1,2,3,4,2};
String[] array2 = new String [3];
double[] array3 = new double [6];   // 各种类型创建方法都一样

使用数组

只会存取;不可越界,不可使用不匹配的数据类型。

取值:数据类型 变量名 = 数组名[下标];

int a = array1[0]; // array1的第1个元素

String b = array2[1]; // array2的第2个元素

double c = array3[5]; // array3的最后一个元素(第6个)

不同数据类型在数组中的默认值:




定义输入数组Java 定义数组并输入_java


默认值:

整型(byte short int long):0

浮点型(float double);0.0

String:null

char:‘ ’(一个空格)

boolean:false

数组长度

用“数组名.length获取”


定义输入数组Java 定义数组并输入_数据结构_02


三、控制台输入

1、不限制输入个数:

public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入一个数组,用逗号隔开:");
        String str = s.next().toString();
        String[] arr = str.split(",");
        int[] b = new int[arr.length];
        for (int i = 0; i < b.length; i++) {
            b[i] = Integer.parseInt(arr[i]);
            System.out.print(b[i] + " ");
        }
        
     }


定义输入数组Java 定义数组并输入_算法_03


2、限制输入的长度

System.out.println("请输入三个数:");
        int[] c = new int[3];
        for (int i = 0; i < c.length; i++) {
            c[i] = s.nextInt();
        }
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i] + " ");
        }


定义输入数组Java 定义数组并输入_java_04


next()和nextLine()

next()与nextLine()区别很明确,next() 方法遇见第一个有效字符(不是空格和换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,获取扫描到的内容,也就是说使用next()方法获得的是不含空格和换行符的单个字符串。

而使用nextLine()时,则可以扫描到一行内容并作为一个字符串而被获取到。


定义输入数组Java 定义数组并输入_数据结构_05


定义输入数组Java 定义数组并输入_java_06


四、数组小技巧

拷贝数组

  • 可以使用for循环,一个一个拷贝
  • 可以使用系统自带的方法System. arraycopy(src, srcPos, dest, destPos, length);
int[] arr = new int[]{ 1, 2, 3, 6, 23 };
        int[] arr1 = new int[arr.length];
        System.arraycopy(arr, 1, arr1, 0, 2);  
// 从arr数组的第一个开始,拷贝两个,到arr1中,arr1从0开始
//  System.arraycopy(src, srcPos, dest, destPos, length);

输出数组

显示数组(比如每趟排序都显示一次数组)

可以使用 Arrays.toString(); 该方法返回为字符串型。

int[] a = new int[]{1,23,42,3,2,1,1};
        System.out.println(Arrays.toString(a));
        
        String str = Arrays.toString(a);
        System.out.println("2:" + str);


定义输入数组Java 定义数组并输入_算法_07


数组排序

int[] arr = { 3, 22, 5, 1, 4 };
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));


定义输入数组Java 定义数组并输入_c++_08