dan*_*r93 72 java printing arrays arraylist
我有一个包含Address对象的ArrayList.
如何打印此ArrayList的值,这意味着我打印出数组的内容,在本例中为数字.
我只能使用以下代码打印出数组的实际内存地址:
for(int i = 0; i < houseAddress.size(); i++) {
System.out.print(houseAddress.get(i));
}
Run Code Online (Sandbox Code Playgroud)
odo*_*ner 96
Arrays.toString(list.toArray())
Run Code Online (Sandbox Code Playgroud)
Ash*_*Jha 16
然后toString()为您的address班级添加方法
System.out.println(Arrays.toString(houseAddress));
Run Code Online (Sandbox Code Playgroud)
Ben*_*kin 10
根据我的理解,您正在尝试打印数组的ArrayList,并且只能显示它
System.out.println(Arrays.deepToString(list.toArray()));
Run Code Online (Sandbox Code Playgroud)
由于您没有为toString()方法提供自定义实现,因此它调用默认值来打印该对象的内存中的地址
Address类中的解决方案会覆盖这样的toString()方法
public class Address {
int addressNo ;
....
....
...
protected String toString(){
return Integer.toString(addressNo);
}
Run Code Online (Sandbox Code Playgroud)
现在你打电话的时候
houseAddress.get(i) in the `System.out.print()` method like this
Run Code Online (Sandbox Code Playgroud)
System.out.print( houseAddress.get(i) )在toString()对的Address对象会被称为
假设您有一个这样的数字清单
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
Run Code Online (Sandbox Code Playgroud)
如果您打印列表
//method 1
// Conventional way of printing arraylist
for (int number : numbers) {
System.out.print(number);
}
//method 2
// Lambda Expression to print arraylist
numbers.forEach((Integer value) -> System.out.print(value));
//method 3
// Lambda Expression to print arraylist
numbers.forEach(value -> System.out.print(value));
//method 4
// Lambda Expression (method reference) to print arraylist
numbers.forEach(System.out::print);
Run Code Online (Sandbox Code Playgroud)
你是说这ArrayList是存储数组的地址,因为这是从toString调用返回的内容,还是因为那实际上是你存储的内容?
如果你有一个ArrayList数组(例如
int[] arr = {1, 2, 3};
houseAddress.add(arr);
Run Code Online (Sandbox Code Playgroud)
然后打印您需要调用的数组值Arrays.deepToString:
for (int i = 0; i < houseAddress.size(); i++) {
System.out.println(Arrays.deepToString(houseAddress.get(i)));
}
Run Code Online (Sandbox Code Playgroud)
您可以简单地将其指定为:
System.out.println("Address:" +houseAddress);
Run Code Online (Sandbox Code Playgroud)
您的输出将如下所示 [address1, address2, address3]
这是因为ArrayList类或其超类将覆盖toString()函数。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
516826 次 |
| 最近记录: |