卡码网Java基础课|6. 数组的倒序与隔位输出
- 数组
- ArrayList
- 增强for循环
- 6. 数组的倒序与隔位输出
数组
Java中的数组是一种用于存储相同数据类型的元素的数据结构。
- 相同数据类型的元素指的是数组中的所有元素都必须是相同的数据类型;
- 固定大小,连续存储,下标访问。
Java中声明数组的方式为dataType[] arrayName或者为dataType arrayName[]。
- dataType表示数组元素的类型,比如int、double、char等;
- arrayName是为数组指定的名称,类似于变量名称。
int[] nums;
double scores[];
这里只是声明了一个数组,既没有为数组指定大小,也没有为数组填充数据,也就是说此时数组在计算机中并没有开辟内存空间,想要为数组分配存储空间,必须对其进行初始化。
Java中的数组可以使用不同的方式进行初始化,包括动态初始化和静态初始化。
- 动态初始化:在声明数组后,使用 new 关键字来分配内存并初始化数组元素。
// 动态初始化一个包含3个整数的数组
int[] numbers = new int[3];
- 静态初始化:在声明数组时,同时为数组分配内存并指定初始值。
int[] numbers = {1, 2, 3};
int value = numbers[2]; //答案是3
numbers[0] = 100; //修改元素
int length = numbers.length; //长度
ArrayList
数组的长度是固定的,但是我们往往并不知道一组数据的大小,这个时候直接使用数组并不太满足需求,可以考虑使用ArrayList。
在Java中,ArrayList 是 java.util 包中的一个类,可以在运行时对其动态添加和删除元素以满足我们的操作需要。
import java.util.ArrayList;
ArrayList<Integer> nums = new ArrayList<Integer>();
//添加元素
nums.add(10);
nums.add(100);
//获取第一个元素
int firstNumber = nums.get(0);
//删除第二个元素
nums.remove(1);
//获取 ArrayList 的大小
int size = nums.size();
增强for循环
for (elementType element : collection) {// 在此处处理 element
}
- elementType 是元素的数据类型
- element 是在每次迭代中表示一个元素的变量
- collection 是要迭代的数组或其他的对象(比如后面讲到的集合)
for (String name : names) {System.out.println(name);
}
6. 数组的倒序与隔位输出
这是不行的,因为System.out.println(nums);
,直接输出一个数组是不可以的,会得到[I@677327b6
。
import java.util.Scanner;
import java.util.ArrayList;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] nums = new int[n]; int i = n;ArrayList<Integer> nums1 = new ArrayList<Integer>();while(i-->0){nums[i] = sc.nextInt();System.out.println(nums[i]);if(i%2==0){nums1.add(nums[i]);}}System.out.println(nums);System.out.println(nums1);sc.close();}
}
import java.util.Scanner;
import java.util.ArrayList;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();ArrayList<Integer> nums = new ArrayList<Integer>();while(sc.hasNextInt()){nums.add(sc.nextInt());}for(int i=n-1; i>=0; i--){System.out.print(nums.get(i));System.out.print(' ');}System.out.println();for(int i=0; i<n; i+=2){System.out.print(nums.get(i));System.out.print(' ');}sc.close();}
}