一、一维数组的静态定义
public class array_1d {
public static void main(String[] args) {
test();
}
public static void test() {
//下为数组的静态定义,定义时数组里的元素已然确定好
String[] names = {"张三" , "李四" , "王五" , "赵六"};
for(String name : names) {
System.out.println(name);
}
}
}
tips:
1.for 循环的另一种用法:
for( 数据类型 小范围 : 大范围){
执行语句
}
相当于python中的for num in nums ,写成for(int num : nums)
2.访问数组的长度:直接array.length即可(访问字符串的长度也一样),根据索引访问数组元素跟python无异
二、一维数组的动态初始化
实现并不知道数据,只能使用动态初始化。
语法格式:数据类型[] 数组名字 = new 数据类型 [数组长度];
实际上,int数组的初始默认值为0;double数组初始默认值0.0;boolean数组初始默认值false。
//需求,存储八名学生的成绩
public class array_1d_dynamic {
public static void main(String[] args) {
test();
}
public static void test() {
double[] scores = new double[8];
for (int i=0 ; i <scores.length ; i++) {
scores[i] = 2*i;
}
int a = (int) scores[5];
System.out.println(scores[1]);
System.out.println(a);
}
}
三、二维数组
public class array_2d_stationary {
public static void main(String[] args) {
test1();
test2();
}
public static void test1() {
//1.静态初始化,生成一个4行3列矩阵二维数组里面的元素同样是数组
int[][] stationary_array = {
{1,2,3} , {4,5,6} , {7,8,9} , {10,11,12}
};
System.out.println(stationary_array[0][2]);
System.out.println("---------------------");
}
// 2.动态初始化,生成一个全零的四行三列数组
public static void test2() {
int[][] array_dynamic = new int[4][3];
for(int i = 0 ; i < 4; i ++){
for(int j = 0 ; j < 3 ; j ++){
array_dynamic[i][j] = 0;
}
}
System.out.println(array_dynamic[0][2]);
}
}
几个问题:(回答摘自gpt)
1.不能直接打印数组出来,像python那样吗?
在 Java 中,直接打印数组(如 System.out.println(array[0]);
)会打印出数组的引用地址,而不是数组的内容。这是因为 Java 的数组没有重写 toString
方法,因此默认调用 Object
类的方法。
需要使用toString 或 deepToString方法
public class print_array {
public static void main(String[] args) {
test();
}
public static void test() {
int[][] array = {
{1,2,3},{4,5,6},{7,8,9}
};
System.out.println(Arrays.toString(array[1]));//对于一维数组
System.out.println(Arrays.deepToString(array));//对于多维数组
}
}
2.java中的数组,可以像python一样append吗?可以通过索引修改Java中数组的值吗?
在 Java 中,数组的行为与 Python 中的列表有所不同。以下是关于 Java 数组的一些关键点:
1. 数组的创建和大小
-
固定大小: Java 中的数组在创建时大小是固定的,不能动态增加或减少。这意味着一旦定义了数组的大小,就无法像 Python 的列表那样使用
append()
方法添加元素。java
复制int[] array = new int[5]; // 创建一个大小为 5 的整数数组
2. 修改数组元素
-
通过索引修改: 在 Java 中,您可以通过索引直接修改数组中的元素。这与 Python 类似。
java
复制array[0] = 10; // 修改第一个元素的值
3. 替代 append
的方法
虽然 Java 数组本身不支持 append
,但您可以使用以下方法来实现类似的功能:
-
创建一个新的数组: 如果您想向数组添加元素,可以创建一个新的更大数组,并将旧数组的元素复制到新数组中。
java
- 复制
int[] newArray = new int[array.length + 1]; System.arraycopy(array, 0, newArray, 0, array.length); newArray[newArray.length - 1] = 20; // 添加新元素
-
使用集合框架: 更常见的做法是使用 Java 的集合类,如
ArrayList
,它提供了动态大小和add()
方法来添加元素。java
复制import java.util.ArrayList; ArrayList<Integer> list = new ArrayList<>(); list.add(1); // 添加元素 list.add(2);
示例代码
以下是一个简单的示例,展示了如何在 Java 中修改数组元素和使用 ArrayList
来实现动态添加:
java
复制
import java.util.ArrayList;
public class ArrayExample {
public static void main(String[] args) {
// 使用数组
int[] array = new int[3];
array[0] = 1;
array[1] = 2;
array[2] = 3;
// 修改元素
array[1] = 5; // 修改第二个元素
System.out.println("Array after modification: ");
for (int num : array) {
System.out.print(num + " ");
}
// 使用 ArrayList
ArrayList<Integer> list = new ArrayList<>();
list.add(1); // 添加元素
list.add(2);
list.add(3);
// 添加新元素
list.add(4);
System.out.println("\nArrayList after adding an element: " + list);
}
}
总结
- 在 Java 中,数组的大小是固定的,不能像 Python 列表那样使用
append()
方法。 - 可以通过索引直接修改 Java 数组的值。
- 对于需要动态大小的情况,使用
ArrayList
是更合适的选择。