Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图从arraylist打印信息,但我想我得到的是内存_Java - Fatal编程技术网

Java 试图从arraylist打印信息,但我想我得到的是内存

Java 试图从arraylist打印信息,但我想我得到的是内存,java,Java,这是我的代码 public static void main(String[] args) { ArrayList<Event> pairs = new ArrayList<Event>(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < n; i++) {

这是我的代码

    public static void main(String[] args)
     {
        ArrayList<Event> pairs = new ArrayList<Event>();
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for (int i = 0; i < n; i++)
        {
          int x = sc.nextInt();
          int y = sc.nextInt();
          pairs.add(new Event(x, y));
        }

        Collections.sort(pairs);

        for(int i = 0; i < pairs.size(); i++)
        {
          System.out.println(pairs.get(i));
        }
     }
会正确排序,但我想打印出来。当我尝试打印它时,虽然我得到了这些值作为回报

C:\Users\Kneer\Documents\CS2\SCroll>java Main < test.in
Main$Event@5a01ccaa
Main$Event@71c7db30
Main$Event@19bb089b
Main$Event@4563e9ab
C:\Users\Kneer\Documents\CS2\SCroll>java Main

我是否错误地遍历了Arraylist信息?

我认为您的
事件
类没有任何
toString()
实现。如果添加它,它应该打印
toString()
实现打印的任何内容

如果查看
java.lang.Object
toString()
实现,就会清楚为什么要打印这些十六进制值-

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

因此,解决方案是重写
toString()
方法,并将自定义格式的对象作为字符串返回。

重写Event.toString()方法或创建一个您可以访问的eventToString(Event evt)方法

public static String eventToString(Event evt) {
  return "Event["+evt.x +"," +evt.y+"]";
}
然后您可以在当前代码中使用它:

for(int i = 0; i < pairs.size(); i++) {
      System.out.println(eventToString(pairs.get(i)));
}
for(int i=0;i
什么是
事件
类?您可能希望向其添加
.toString
方法(或
x
y
的getter,并使用它们)。请提供一个。您正在打印一个对象,该对象将打印“ObjectName@HashCode“(支票)
for(int i = 0; i < pairs.size(); i++) {
      System.out.println(eventToString(pairs.get(i)));
}