该内容已被发布者删除 该内容被自由微信恢复
文章于 2021年9月5日 被检测为删除。
查看原文
被用户删除
其他

和鸭哥一起看,Java数组声明及初始化的全貌

鸭哥 鸭哥聊Java 2021-09-05

大家好,我是鸭哥。


数组是相同类型的、用一个标识符封装在一起的基本类型数据序列或对象序列,是最为常见的数据结构。鸭哥今天想聊聊数组的声明和初始化,它在我们的工作中使用频率最高,但是很多相关知识,很多人却未必了解全貌。



数组变量的创建


Java 中提供了两种数组声明风格,

//首选的方法dataType[] arrayVar; //一维数组dataType[][] arrayName; //二维数组
或者
//非首选,来自C/C++语言风格dataType arrayVar[]; //一维dataType arrayName[][]; //二维

使用 new 创建数组,

arrayVar = new dataType[size];arrayName = new dataType[length1][length2];

第一行的代码做了两件事:先是创建了dataType[size] 数组,然后将新创建数组对象的引用赋值给arrayVar,即引用变量 arrayVar 引用了这个数组。


数组的声明和创建可以一条龙完成,这也是我们平时最常用的写法,

dataType arrayVar = new dataType[size];

数组变量的初始化


一维数组和多维数组的初始化方式是类似的,

//一维数组int arr[] = new int[]{1, 2, 3, 4, 5}; //第一种初始化方法int arr2[] = {1, 2, 3, 4, 5}; //第二种
String[] myStringArray = new String[]{"a", "b", "c"};String[] myStringArray = {"a", "b", "c"};
//二维数组int myArr[][] = new int[][]{{1, 3}, {2, 4}};int myArr[][] = {{1, 3}, {2, 4}};

对于多维数组,还可以从最高维开始,分别为每一维分配空间,

String s[][] = new String[2][];//最高维分配引用空间s[0] = new String[2];s[1] = new String[3];
s[0][0] = new String("Do");s[0][1] = new String("you");s[1][0] = new String("love");s[1][1] = new String("Java");s[1][2] = new String("?");


数组常用的操作技巧


整数数组的快捷初始化方法,


  • 使用 fill() 方法将指定的 int 值分配给int型数组的每个元素

int[] array = new int[3];
// 填充数组Arrays.fill(array, 8); //等价于array = {8, 8, 8}


  • 使用 IntStream 进行初始化

int [] myIntArray = IntStream.range(0, 100).toArray(); //数组中的元素为0到99int [] myIntArray = IntStream.rangeClosed(0, 100).toArray(); //数组中的元素为0到100
int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).toArray(); //数组元素的顺序与初始化的顺序相同,等价于 myIntArray = {12,25,36,85,28,96,47};
//数组元素从小到大排序int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).sorted().toArray();


数组的复制,


  • Arrays 类的 copyOf() 方法和 copyOfRange() 方法可以实现进行数组的复制

//将arr数组复制给数组newArr,新数组的长度为 5int[] arr = new int[]{12, 34, 45};int[] newArr[] = Arrays.copyOf(arr, 5);

//将指定范围内的数组元素复制给新数组int[] arr = new int[]{23, 34, 45, 46, 78};int newArr[] = Arrays.copyOfRange(arr, 0, 3); //不包括末尾索引对应的元素,新数组的元素为{23, 34, 45}


数组的排序和查找,


  • Arrays 类的 sort() 方法可以对数组进行排序;查找数组元素可以通过 binarySearch() 方法,能对排序好的数组进行二分查找法操作

int arr[] = new int[]{4, 25, 10};Arrays.sort(arr);

int index = Arrays.binarySearch(arr, 10); //index = 2,元素在数组中,返回所在位置的索引int index2 = Arrays.binarySearch(arr, 8); //index1 = -2,数组中不存在查找元素,返回插入点索引的相反数



关于数组声明和初始化的内容就到这里,可能很多知识大家是知道的,但有了鸭哥的复盘,相信大家心中知识点的脉络和层次就更加清晰了。


在评论区聊聊你的思考吧~


近期技术热文

1、新版 Win10 来了!网友:要被丑哭了。。。

2、放弃 StringBuilder!Java8的StringJoiner,真香!

3、CTO说了,再发现谁用kill -9关闭程序就开除


点个在看你最好看


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存