JavaSE学习(五):数组及其基础操作
第一节 数组
1.1 数组定义
将具有相同数据类型的数据集中再一个容器中,这个容器我们称之为数组。数组也是引用数据类型中的一种。
1.2 数组的声明的方式
1、方式一:
数据类型[] 数组名 = new 数据类型[数组的长度];
2、方式二:
数据类型[] 数组名 = {数值1,数值2...};
3、方式三:
数据类型[] 数组名 = new 数据类型[] {数值1,数值2....};
1.3 Java中的三种注释方式
方式一:单行注释
// 解释当前行代码
方式二:多行注释
/*注释内容*/ 解释一段内容
方式三:文档注释
/**注释内容*/ 解释当前类的内容
例程:Demo1.java
1 /**文档注释:
2 * @author:Kanekiyi
3 *
4 * 代码功能:数组声明的三种方式
5 *
6 * */
7
8 public class Demo1 {
9 /*
10 * 注释方法二之多行注释
11 */
12 public static void main(String[] args){
13
14 //1、先声明后初始化
15 int[] arr1 = new int[3];
16
17 //2、声明的时候进行初始化操作
18 String[] arr2 = {"期间"," ","www"};
19 int positon = Arrays.binarySearch(arr2, "www");
20
21 System.out.println( positon); //数组的地址
22
23 //3、将12合起来
24 int[] arr3 = new int[] {1,2,3}; //注意[]内不能有内容
25
26 }
27
28 }
第二节 数组的操作
2.1 数组的获取
1:通过数组的下标来访问数组,从0开始,0表示数组中的第一个数据。也就是 数组名[0]表示数组中的第一个数据。
2:通过length属性表示数组的长度
数组名.length 可以获取数组的长度。数组的最后一个元素可以用:
数组名[数组名.length-1]来获取
3:数组的输出
通过函数 Arrays.toString[数组名] 来输出数组
思考:数组大小可以改变吗?
数组的大小一旦确认后就不能改变。如果发生了改变将不是原来的数组地址,会开辟新的空间来指作为创建新的数组地址。
可以通过数组的扩容和缩容来实现改变数组的大小。
2.2 数组的扩容和缩容
调用方法:
Arrays.copyOf(原数组,新的数组长度);
注:数组的扩容或缩容都是再原来的数组的末尾增加或减少数组值。
例程:Demo2
1 package com.auto.javase;
2
3 import java.util.Arrays;
4 /**
5 *
6 * @项目名称:javaSEDay06m
7 * @模块功能:数组的扩容缩容
8 * @模块版本:
9 * @JDKVersions:JDK 8.0
10 * @author: Kanekiyi
11 * @time: 8月 7 下午1:49:26
12 */
13 public class Demo2 {
14 public static void main (String[] args) {
15
16 //1、通过数组的下标来访问数组数据
17 int[] arr = new int[3];
18 arr[0] = 1;
19 arr[1] = 2;
20 arr[2] = 3;
21 //arr[4] = 6; //如果超过数组长度会报异常
22 System.out.println("数组的长度"+arr.length);
23
24 //2、通过Arrays.toString(arr)来输出数组值
25 System.out.println( Arrays.toString(arr) );
26
27 //3、数组的扩容
28 arr = Arrays.copyOf ( arr,5 );
29 System.out.println( "数组的地址"+arr); //数组的地址
30
31 arr[4] = 6;
32 System.out.println("扩容后的数组为"+ Arrays.toString(arr) );
33 //在原来的长度基础上增加长度
34 arr = Arrays.copyOf ( arr,arr.length+8 );
35 arr[8] = 16;
36 System.out.println("扩容后的数组为"+ Arrays.toString(arr) );
37
38 //数组的地址
39 System.out.println( "数组的地址"+arr);
40
41 //4、数组的缩容
42 arr = Arrays.copyOf(arr,arr.length-10);
43 System.out.println("缩容后的数组为"+ Arrays.toString(arr) );
44
45 System.out.println( "数组的地址"+arr); //数组的地址
46
47 arr = Arrays.copyOf(arr,1);
48 System.out.println("缩容后的数组为"+ Arrays.toString(arr) );
49 System.out.println( "数组的地址"+arr); //数组的地址
50
51 }
52 }
2.3 数组的默认值
数组中数组的默认值
整数类型:0
浮点类型:0.0
字符类型:\u0000
布尔类型:false
引用数据类型:null
例程:Demo4.java
1 package com.auto.javase;
2
3 import java.util.Arrays;
4
5 /**
6 * 数组中的数据类型的默认值
7 *
8 */
9 public class Demo4 {
10 public static void main(String[] args) {
11 int[] arr1=new int[2];
12 double[] arr2=new double[2];
13 char[] arr3=new char[2];
14 boolean[] arr4=new boolean[2];
15 String[] arr5=new String[2];
16 System.out.println(Arrays.toString(arr1));
17 System.out.println(Arrays.toString(arr2));
18 System.out.println(Arrays.toString(arr3));
19 System.out.println(Arrays.toString(arr4));
20 System.out.println(Arrays.toString(arr5));
21 }
22 }
2.4 数组的遍历
方式一:
普通for循环实现
int[] arr = {...};
for(int i = 0; i<arr.length; i++){
arr[i];
}
方式二:
增强for循环实现
int[] arr = {...};
for(int num:arr){
num;
}
int:num的数据类型;
num:每遍历一次的数据;
arr:要遍历的数组名称;
例程:Demo4.java
1 package com.auto.javase;
2
3 import java.util.Arrays;
4 /**
5 *
6 * @项目名称:javaSEDay06m
7 * @模块功能:数组中的数据类型的默认值
8 * @模块版本:
9 * @JDKVersions:JDK 8.0
10 * @author: Kanekiyi
11 * @time: 8月7日 下午1:52:15
12 */
13 public class Demo4 {
14 public static void main (String[] args) {
15
16 //1、通过数组的下标来访问数组数据
17 int arr1[] = new int[] {1,2,3,4};
18
19 for (int i = 0; i<arr1.length; i++) {
20 System.out.println(arr1[i]);
21
22 }
23
24 //2 增强for循环
25 for (int num:arr1) {
26 System.err.println(num);
27 }
28
29 }
30 }
2.5 数组的中的数据交换
方式:通过临时变量来达成二者的交换
例如:交换数组的最后一位与第一位
int[] arr = {1,2,3,4};
int a = arr[arr.length-1];
arr[arr.length-1] = arr[0];
arr[0] = a;
例程:Demo05.java
1 package com.auto.javase;
2
3 import java.util.Arrays;
4
5 public class Demo5 {
6 public static void main (String[] args) {
7 /**
8 *
9 * 数组中的数据的交换,将数组中的最后一个元素与第二个元素进行交换
10 * */
11
12 int[] arr = {1,2,3,4};
13 System.out.println( Arrays.toString(arr) );
14
15 int a = arr[arr.length-1]; //将最后一个数赋给引入的第三个数
16 arr[arr.length-1] = arr[1]; //将第二个数赋给最后一个数
17 arr[1] = a; //将引入的第三个数(原最后一个数)赋给第二个数
18 System.out.println( Arrays.toString(arr) );
19
20
21 }
22 }
练习:将数组从正序改为倒序输出:
Text1.java
1 package com.auto.javase;
2
3 import java.util.Arrays;
4
5 public class Text1 {
6 public static void main(String[] args) {
7
8 int[] arr = {1,2,3,4,5,6,7,8,9};
9 System.out.println( Arrays.toString(arr) );
10
11 for (int i =0; i<arr.length/2; i++) {
12
13 int x = arr[arr.length-i-1]; //将最后一个数赋给引入的第三个数
14 arr[arr.length-i-1] = arr[i]; //将第二个数赋给最后一个数
15 arr[i] =x;
16
17 }
18
19 System.out.println( Arrays.toString(arr) );
20 }
21
22 }