JavaSE学习:数组及其基础操作
Posted kanekiyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于JavaSE学习:数组及其基础操作的主要内容,如果未能解决你的问题,请参考以下文章