int[] a = { 5, 12, 41, 56, 62, 75, 88, 95 };
交换元素后:
int[] a = { 95 ,88 ,75 ,62 ,56, 41 ,12 ,5 };
package day1;
import java.util.Arrays;
import java.util.Scanner;
public class h_w34 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] a={5,12,41,56,62,75,88,95};
int[] b=new int[a.length];
System.out.println("交换前:"+ Arrays.toString(a));
for (int i = a.length-1; i>=0; i--) { //i表示索引,索引=长度-1
b[a.length-1-i]=a[i];
}
System.out.println("交换后:"+Arrays.toString(b));
}
}
------------------------------------------------------------------------------------------------------------------------------
运行结果:
---------------------------------------------------------------------------------------------------------------------------------
内容补充:(一维数组的声明和创建)
package day1;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import java.util.Arrays;
public class Demo5 {
public static void main(String[] args) {
/*
关于数组的基本概念:
数组:是一组相同数据类型的集合,是一个容器
数组中可以存储基本数据类型,也可以存储引用数据类型
数组本事是引用数据类型,是一个对象
数组创建时必须指明长度,且长度不能改变
数组中每个元素空间是连续的
*/
int[] a = new int[5];//new 创建一个数组,并指定数组长度
//Arrays类,java中提供用于操作数组的工具类,提供排序,二分查找,数组复制...
System.out.println(Arrays.toString(a));
//每个空间会赋予默认值 整数默认值0
int[] b=new int[]{1,2,3,4,5,6,7};
System.out.println(Arrays.toString(b));
int[] c={1,2,3,4};
System.out.println(Arrays.toString(c));
String[] strings=new String[5];
System.out.println(Arrays.toString(strings));
boolean[] d=new boolean[5];
System.out.println(Arrays.toString(d));
System.out.println("----------------");
/*
访问数组中元素
数组名[下标]
下标;从0开始,是int类型(有限)
数组最大索引 : 长度-1
*/
int[] e=new int[5];
e[0]=10; //可以改变数组中的值
System.out.println(e[0]);
//计算数组长度
System.out.println(e.length);
System.out.println("-------------");
//for循环遍历数组
for (int i = 0; i < e.length; i++) {
System.out.println(e[i]);
}
}
}
(注意不同类型数组的默认值)
(1)整数 默认值0
(2)字符串String 默认值null
(3)布尔型boolean 默认值false
运行结果:
--------------------------------------------------------------------------------------------------------------------------------
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组
package day1;
import java.util.Arrays;
public class h_w35 {
public static void main(String[] args) {
int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; //初始数组
System.out.println("length="+oldArr.length); //初始数组长度
int newLen=0; //新数组长度(去除0)
for (int i = 0; i < oldArr.length; i++) {
if(oldArr[i]!=0){ //通过for循环,计算除去0后数组的长度,即新数组长度
newLen++;
}
}
System.out.println("newLen="+newLen); //打印新数组长度
int[] newArr=new int[newLen]; //创建一个新数组
int str=0; //新数组索引
for (int i = 0; i < oldArr.length; i++) {
if(oldArr[i]!=0){
newArr[str]=oldArr[i]; //将不等于0的值赋给新数组
str++;
}
}
System.out.println("去掉0后的新数组newArr:");
System.out.println(Arrays.toString(newArr)); //打印结果
}
}
---------------------------------------------------------------------------------------------------------------------------------
运行结果:
(代码若可以优化,欢迎大家提建议 ^_^ )