您的位置:首页 > 编程语言 > Java开发

Java基础篇--数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结-

2019-03-31 14:52 776 查看

数组的三种声明方式总结、多维数组的遍历、Arrays类的常用方法总结

数组的概念
数组是一种数据结构,在java中可以理解为一种特殊的数据类型,他表示由同一类型数组成的大小固定的有序集合。数组的长度在创建数组时指定,每个元素都有下标,可以通过下标来访问数组的元素。
数组的初始化
数组的初始化也和变量的初始化类似,数组有三种初始化方式,前两种是在声明地同时进行初始化,第三种是声明之后再初始化。数组的长度是不可变得,在初始化时已经确定。

方式一:
数组元素类型[] 数组名 = [元素1,元素2,元素3…];

char[] arr1 = {‘a’,’b’,’’c};
int[] arr2={1,2,3};
String[] arr3={“this”,”is”,”a”,”test”};

方式二:
数组元素类型[] 数组名 = new 数组元素类型{元素1,元素2,元素3…};

char [] arr = new char[]{‘a’,’b’,’c’,’d’};

数组声明的同时数组的大小就会确定,而方式一和方式二的共同点是在声明的同时赋初值。虽然数组的元素可以通过数组改变,但数组元素的类型和数组的大小一旦声明,就是不变的。

方式三:
数组元素类型[] 数组名 = new 数组元素类型[数组元素个数];数组名[0] = 元素1;数组名[1] = 元素2;…

int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
。。。

多维数组的声明与初始化和一维数组是相同的,每加一个维度则加一个[]。多维数组其实是“数组的数组”,二维数组其实是一维数组的每个元素都是一个一维数组,三维数组是二维数组的每个元素都是一个一维数组,以此类推。

数组常见操作

( 遍历)依此访问数组中每个元素的操作叫做数组的遍历,数组的遍历是数组最常见的操作。
例一:一维数组

package java_study;
public class ArrayTest1 {
public static void main(String[] args) {
int arr[]=new int[10];
for(int i=0;i<arr.length;i++) {
arr[i]=2*i+1;
}
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}

运行结果:1 3 5 7 9 11 13 15 17 19

例二:二维数组

package java_study;
public class ArrayTest2 {
public static void main(String[] args) {
String[][] test = {{"1","2","3"},{"a","b","c"}};
for(int i=0;i<2;i++) {
for(int j=0;j<3;j++)
{
System.out.print(test[i][j]+" ");
}
System.out.println();
}
}
}

运行结果如下:
1 2 3
a b c

再介绍几个常用的arrays的方法

1、aslist()
Arrays是java容器相关操作的工具类,asList方法将Array转换为list,是Array和List之间的桥梁。

List<String> list = Arrays.asList("a","b","c");

这个看似功能很明了的方法却暗藏玄机,下一篇微博介绍:
1、https://www.geek-share.com/detail/2765015418.html

2、https://www.geek-share.com/detail/2765015599.html
2、copyOf()
Arrays.copyOf功能是实现数组的复制,返回复制后的数组。参数是被复制的数组和复制的长度:

package java_study;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetTest1 {
public static void main(String[] args) {
String[] arr=new String[5];
String[] strs1={"123","234","345","456","789"};
//String[] strs2=new String[2];//Two ways to state a array
String[] str2=Arrays.copyOf(strs1, 3);
String[] str3=Arrays.copyOf(strs1, 8);
System.out.println();
for(String ele:str2){
System.out.print(ele+";");
}
System.out.println();
for(String ele:str3){
System.out.print(ele+";");
}

int[] in={1,2,3,4,5};
int[] int1=Arrays.copyOf(in,3);
int[] int2=Arrays.copyOf(in,8);
System.out.println();
for(int ele:int1){
System.out.print(ele+";");
}
System.out.println();
for(int ele:int2){
System.out.print(ele+";");
}
}
}

运行结果是
123;234;345;
123;234;345;456;
789;null;null;null;
1;2;3;
1;2;3;4;5;0;0;0;

说明:复制的长度大于被复制数组的长度,则填充类型默认值,String得默认值是null,int的默认值是0。

3、sort()升序排序,直接使用Arrays.Sort方法

package java_study;
import java.util.Arrays;

public class ArraySort {
public static void main(String arg[]){
int[] arr = {1,4,6,10,8,2};
Arrays.sort(arr);//使用java.util.Arrays对象的sort方法
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}

运行结果
1 2 4 6 8 10

4、toString()
数组使用toString方法打印数组,省略for循环。

package java_study;
import java.util.Arrays;
public class ArraySort {
public static void main(String arg[]){
int[] arr = {1,4,6,10,8,2};
Arrays.sort(arr);//使用java.util.Arrays对象的sort方法
System.out.println(Arrays.toString(arr));
}
}

输出结果为:[1, 2, 4, 6, 8, 10]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: