第一节 数组

1.1 数组定义

将具有相同数据类型的数据集中再一个容器中,这个容器我们称之为数组。数组也是引用数据类型中的一种。

1.2 数组的声明的方式

1、方式一:

数据类型[] 数组名 = new 数据类型[数组的长度];

2、方式二:

 数据类型[] 数组名 = {数值1,数值2...};

3、方式三:

 数据类型[] 数组名 = new 数据类型[] {数值1,数值2....};

1.3 Java中的三种注释方式

方式一:单行注释

//   解释当前行代码

方式二:多行注释

/*注释内容*/   解释一段内容

方式三:文档注释

/**注释内容*/   解释当前类的内容

例程:Demo1.java

ios 在数组第一位 数组第一个数怎么表示_ios 在数组第一位

ios 在数组第一位 数组第一个数怎么表示_数组_02

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 }

View Code

 

第二节 数组的操作

2.1 数组的获取

1:通过数组的下标来访问数组,从0开始,0表示数组中的第一个数据。也就是 数组名[0]表示数组中的第一个数据。

2:通过length属性表示数组的长度

数组名.length 可以获取数组的长度。数组的最后一个元素可以用:

数组名[数组名.length-1]来获取

3:数组的输出

通过函数 Arrays.toString[数组名] 来输出数组

思考:数组大小可以改变吗?

数组的大小一旦确认后就不能改变。如果发生了改变将不是原来的数组地址,会开辟新的空间来指作为创建新的数组地址。

可以通过数组的扩容和缩容来实现改变数组的大小。

2.2 数组的扩容和缩容

调用方法:

Arrays.copyOf(原数组,新的数组长度);

注:数组的扩容或缩容都是再原来的数组的末尾增加或减少数组值。

例程:Demo2

ios 在数组第一位 数组第一个数怎么表示_ios 在数组第一位

ios 在数组第一位 数组第一个数怎么表示_数组_02

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 }

View Code

2.3 数组的默认值

数组中数组的默认值

整数类型:0

浮点类型:0.0

字符类型:\u0000

布尔类型:false

引用数据类型:null

例程:Demo4.java

ios 在数组第一位 数组第一个数怎么表示_ios 在数组第一位

ios 在数组第一位 数组第一个数怎么表示_数组_02

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 }

View Code

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

ios 在数组第一位 数组第一个数怎么表示_ios 在数组第一位

ios 在数组第一位 数组第一个数怎么表示_数组_02

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 }

View Code

 

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

ios 在数组第一位 数组第一个数怎么表示_ios 在数组第一位

ios 在数组第一位 数组第一个数怎么表示_数组_02

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 }

View Code

练习:将数组从正序改为倒序输出:

Text1.java

ios 在数组第一位 数组第一个数怎么表示_ios 在数组第一位

ios 在数组第一位 数组第一个数怎么表示_数组_02

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 }

View Code