Java SE入门及基础(17)

发布时间:2024年01月16日

目录

数组操作

1. 遍历数组

示例

2.求最值

案例

3. 修改数组中的元素

案例

分析

代码实现

4. 向数组中添加元素

案例

分析

代码实现

5. 删除数组中的元素

案例

分析

代码实现

6. 数组拷贝

语法

示例

7. 数组扩容

语法

示例

Java?SE文章参考:Java SE入门及基础知识合集-CSDN博客


数组操作

1. 遍历数组

????????数组的遍历是指将数组中的元素全部查看一遍

示例

public static void main ( String [] args ) {
????????int [] numbers = { 1 , 2 , 3 , 4 , 5 , 6 };
????????//数组的长度: 数组名 .length 其中 '.' 读作 的
????????for ( int i = 0 ; i < numbers . length ; i ++ ){
????????//访问数组中的元素: 数组名 [ 元素下标 ]
????????System . out . println ( numbers [ i ]);
????????}
}

2.求最值

案例

求出数列 54,38,79,65,30,83,62 的最大值。

3. 修改数组中的元素

案例

????????现有数列10,12,17,32,39,50 ,要求将该数列中所有能够被 3 整除的元素进行平方,然后再放回该元素所处位置

分析

  • a. 首先应该将数组中的所有元素全部查看一遍
  • b. 查看过程中,验证每一个元素是否能够被3整除
  • c. 如果能够被3整除,则将该元素平方,然后放入该元素所处的位置

代码实现

public static void main ( String [] args ) {
????????int [] numbers = { 10 , 12 , 17 , 32 , 39 , 50 };
????????for ( int i = 0 ; i < numbers . length ; i ++ ){
????????????????if ( numbers [ i ] % 3 == 0 ){ // 3 整除
????????????????????????// int result = numbers[i] * numbers[i];
????????????????????????// numbers[i] = result;
????????????????????????// numbers[i] = numbers[i] * numbers[i];
????????????????????????numbers [ i ] *= numbers [ i ];
????????????????}
????????}
}

4. 向数组中添加元素

案例

在某机票代售点有 A B C D E 5 人正排队购票, B 的好朋友 F 现在也来排队购票,发现 B 正在排队,于是插队至B 的后面,请使用数组的相关知识完成程序设计。

分析

  • a. 构建一个字符串数组存储ABCDE5
  • b. F来插队,插队到B的后面,那么B后面的人所处位置相当于往后挪动一位

代码实现

public static void main ( String [] args ) {
????????// A B C D E
????????// A B F C D E
????????String [] personArr = { "A" , "B" , "C" , "D" , "E" };
????????String [] newArr = new String [ personArr . length + 1 ]; // 新建一个数组,长度比原来的数组多1
????????int index = 2 ; //F 的位置
????????for ( int i = 0 ; i < index ; i ++ ){
????????????????newArr [ i ] = personArr [ i ]; // personArr 数组中的元素直接拷贝过来
????????}
????????newArr [ index ] = "F" ;
????????for ( int i = index ; i < personArr . length ; i ++ ){
????????????????newArr [ i + 1 ] = personArr [ i ]; // personArr 数组中 B 后面的元素挪动过来,但位置需要加1
????????}
????????personArr = newArr ;
????????for ( int i = 0 ; i < personArr . length ; i ++ ){
????????????????System . out . println ( personArr [ i ]);
????????}
}

5. 删除数组中的元素

案例

在前面的案例中,购票人 C 因为中途有事而离开,排队的人员减少了一个。请使用数组的相关知识完成程序设计。

分析

  • a. 使用数组存储目前排队的人ABFCDE
  • b. C离开后,排队的人员减少了1个,C后面的人向前挪动一位

代码实现

public static void main ( String [] args ) {
????????String [] personArr = { "A" , "B" , "F" , "C" , "D" , "E" };
????????//A B F C D E
????????//A B F D E
????????String [] newArr = new String [ personArr . length - 1 ];
????????int index = 3 ; //C 的位置
????????for ( int i = 0 ; i < index ; i ++ ){
????????????????newArr [ i ] = personArr [ i ];
????????}
????????for ( int i = index + 1 ; i < personArr . length ; i ++ ){
????????????????newArr [ i - 1 ] = personArr [ i ];
????????}
????????personArr = newArr ;
????????for ( int i = 0 ; i < personArr . length ; i ++ ){
????????????????System . out . println ( personArr [ i ]);
????????}
}

6. 数组拷贝

语法

System . arrayCopy ( 原数组 , 拷贝的开始位置 , 目标数组 , 存放的开始位置 , 拷贝的元素个数 );

示例

public static void main ( String [] args ) {
????????// A B C D E
????????// A B F C D E
????????String [] personArr = { "A" , "B" , "C" , "D" , "E" };
????????String [] newArr = new String [ personArr . length + 1 ]; // 新建一个数组,长度比原来的数组多1
????????int index = 2 ; //F 的位置
????????// for(int i=0; i<index; i++){
????????????????// newArr[i] = personArr[i];//将personArr 数组中的元素直接拷贝过来
????????// }
????????//数组拷贝
????????System . arraycopy ( personArr , 0 , newArr , 0 , index );
????????newArr [ index ] = "F" ;
????????// for(int i=index; i<personArr.length; i++){
????????????????// newArr[i+1] = personArr[i];//将personArr 数组中 B 后面的元素挪动过来,但位置需要加1
????????// }
????????System . arraycopy ( personArr , index , newArr , index + 1 ,
????????personArr . length - index );
????????personArr = newArr ;
????????for ( int i = 0 ; i < personArr . length ; i ++ ){
????????????????System . out . println ( personArr [ i ]);
????????}
}

7. 数组扩容

语法

数据类型 [] 标识符 = Arrays . copyOf ( 原数组 , 新数组的长度 );

示例

public static void main ( String [] args ) {
String [] personArr = { "A" , "B" , "C" , "D" , "E" };
// 数组扩容: 第一个参数表示要扩容的数组 第二个参数表示,扩容后的新的数组的长度
// 作用: 新建一个数组,并将原数组的所有元素全部拷贝至新数组中
//newArr = {"A","B","C","D","E", null}
String [] newArr = Arrays . copyOf ( personArr , personArr . length + 1 );
int index = 2 ;
// A B C D E null => A B C C D E
System . arraycopy ( newArr , index , newArr , index + 1 , personArr . length -
index );
//A B C C D E => A B F C D E
newArr [ index ] = "F" ;
personArr = newArr ;
for ( int i = 0 ; i < personArr . length ; i ++ ){
System . out . println ( personArr [ i ]);
}
}

Java?SE文章参考:Java SE入门及基础知识合集-CSDN博客

文章来源:https://blog.csdn.net/m0_63181360/article/details/135623889
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。