[英]I am trying to get a file to read into an arraylist, and calculate the average and print out the contents of the Arraylist and the average.
[英]Trying to print out the contents of an ArrayList
我正在嘗試打印出ArrayList“列表”的內容,但我不斷得到我認為的元素位置而不是內容。
import java.util.*;
public class Assignment23 {
public static void main (String[] args){
ArrayList<Point> list = new ArrayList<Point>();
for(int i = 0; i < 99; i++){
list.add(new Point());
}
Collections.sort(list);
System.out.println(""+list);
}
}
class Point implements Comparable<Point>{
int x = (int)(Math.random()*-10);
int y = (int)(Math.random()*-10);
要打印出ArrayList
的內容,請使用for loop
:
for (Point p : list)
System.out.println("point x: " + p.x ", point y: " + p.y);
如果你為Point
實現toString
和你編寫的大多數類,你會發現你可以獲得更好的結果。 考慮一下:
@Override public String toString()
{
return String.format("(%d,%d)", x, y);
}
過分寫入toString方法
class Point implements Comparable<Point>{
int x = (int)(Math.random()*-10);
int y = (int)(Math.random()*-10);
@Override
public String toString()
{
return "["+x+","+y+"]";
}
}
用法相同:
Collections.sort(list);
System.out.println("Points["+list+"]);
你會得到像這樣的輸出
Points[[20,10],[15,10]...]
在Point類上覆蓋toString()
方法。
class Point implements Comparable<Point>{
@Override
public String toString() {
return "x =" + x + ", y="+y;
}
}
將其更改為:
System.out.println(""+list.get(i).x); //Or whatever element in `Point` you want to print
您獲得意外結果的原因是您的列表包含Point
對象。 所以調用list.get(i)
返回一個整個Point
,而你想在Point
指定要打印出來的那個字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.