在Java中,输出类数组(对象数组)通常有以下几种方法:
使用`Arrays.toString()`方法
```java
import java.util.Arrays;
class MyClass {
int value;
MyClass(int value) {
this.value = value;
}
}
public class Main {
public static void main(String[] args) {
MyClass[] myArray = new MyClass[]{new MyClass(1), new MyClass(2), new MyClass(3)};
System.out.println(Arrays.toString(myArray));
}
}
使用`Arrays.deepToString()`方法(适用于多维数组或包含其他数组的对象数组):
```java
import java.util.Arrays;
class MyClass {
int[][] matrix;
MyClass(int[][] matrix) {
this.matrix = matrix;
}
}
public class Main {
public static void main(String[] args) {
int[][] matrix = {{1, 2}, {3, 4}};
MyClass myArray = new MyClass(matrix);
System.out.println(Arrays.deepToString(myArray.matrix));
}
}
使用`Stream API`(Java 8及以上版本):
```java
import java.util.Arrays;
class MyClass {
int value;
MyClass(int value) {
this.value = value;
}
}
public class Main {
public static void main(String[] args) {
MyClass[] myArray = new MyClass[]{new MyClass(1), new MyClass(2), new MyClass(3)};
Arrays.stream(myArray).forEach(System.out::println);
}
}
使用`StringBuilder`(逐个元素拼接输出):
```java
class MyClass {
int value;
MyClass(int value) {
this.value = value;
}
}
public class Main {
public static void main(String[] args) {
MyClass[] myArray = new MyClass[]{new MyClass(1), new MyClass(2), new MyClass(3)};
StringBuilder sb = new StringBuilder();
for (MyClass obj : myArray) {
sb.append(obj.value).append(",");
}
System.out.println(sb.toString());
}
}
重写`toString()`方法(自定义输出格式):
```java
class MyClass {
int value;
MyClass(int value) {
this.value = value;
}
@Override
public String toString() {
return "MyClass{" +
"value=" + value +
'}';
}
}
public class Main {
public static void main(String[] args) {
MyClass[] myArray = new MyClass[]{new MyClass(1), new MyClass(2), new MyClass(3)};
for (MyClass obj : myArray) {
System.out.println(obj);
}
}
}
以上方法均可用于输出类数组的内容。选择哪一种方法取决于具体的需求和偏好