Java-从另一个类读取ArrayList

Java-从另一个类读取ArrayList,java,class,arraylist,Java,Class,Arraylist,我们并没有讨论ArrayList只涉及数组和2D数组。我需要做的是能够从另一个类的ArrayList中读取数据。主要目的是在for循环中读取它们,并使用其中存储的值来显示项目。然而,我已经做了这个快速的程序来测试它,并不断得到这个错误 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:604) at java.util.Ar

我们并没有讨论ArrayList只涉及数组和2D数组。我需要做的是能够从另一个类的ArrayList中读取数据。主要目的是在for循环中读取它们,并使用其中存储的值来显示项目。然而,我已经做了这个快速的程序来测试它,并不断得到这个错误

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:604)
    at java.util.ArrayList.get(ArrayList.java:382)
    at Main.Main(Main.java:14)
这是我的密码

import java.util.ArrayList;

public class Main
{
    public static void Main()
    {
        System.out.println("Test");
        ArrayList <Objects> xcoords = new ArrayList<Objects>();

        for( int x = 1 ; x < xcoords.size() ; x++ )
        {
            System.out.println(xcoords.get(x));
        }
    }
}
如果有人能给我指出正确的方向,那将是非常有价值的。我已经尝试过调试,但是我可以得到任何有用的东西


提前感谢。

这里您只需创建两个完全不相关的列表。让数组列表成为
对象
类的属性,并通过实例方法检索它,或者从实例或静态方法返回它,或者将属性设置为静态。在大多数情况下,前两种方法更可取

public class Objects {
    public static List<Integer> getXcoords() {
        List<Integer> xcoords = new ArrayList<Integer>();

        // Your same code, but adding:
        return xoords;
    }
}
公共类对象{
公共静态列表getXcoords(){
List xcoords=new ArrayList();
//您的代码相同,但添加了:
返回xoods;
}
}
然后使用它:

import java.util.ArrayList;

public class Main {
    // Note the lower-case "main" here. You want that.
    public static void main() {
        List<Integer> xcoords = Objects.getXcoords();
        // etc.
import java.util.ArrayList;
公共班机{
//注意这里小写的“main”,你想要的。
公共静态void main(){
List xcoords=Objects.getXcoords();
//等等。
另外,您的
列表
应该是
整数
,而不是
对象
,这将创建一个包含
对象
实例的集合。您可能需要后退一步,以更好的方式将列表与数组关联起来——您不会创建
对象的数组,是吗?不,您会有一个
int数组
整数


此外,还有
数组。asList
在这里,您只需创建两个完全不相关的列表。要么将数组列表作为
对象的属性,并通过实例方法检索它,要么从实例或静态方法返回它,要么将属性设置为静态。在大多数的情况

public class Objects {
    public static List<Integer> getXcoords() {
        List<Integer> xcoords = new ArrayList<Integer>();

        // Your same code, but adding:
        return xoords;
    }
}
公共类对象{
公共静态列表getXcoords(){
List xcoords=new ArrayList();
//您的代码相同,但添加了:
返回xoods;
}
}
然后使用它:

import java.util.ArrayList;

public class Main {
    // Note the lower-case "main" here. You want that.
    public static void main() {
        List<Integer> xcoords = Objects.getXcoords();
        // etc.
import java.util.ArrayList;
公共班机{
//注意这里小写的“main”,你想要的。
公共静态void main(){
List xcoords=Objects.getXcoords();
//等等。
另外,您的
列表
应该是
整数
,而不是
对象
,这将创建一个包含
对象
实例的集合。您可能需要后退一步,以更好的方式将列表与数组关联起来——您不会创建
对象的数组,是吗?不,您会有一个
int数组
整数


<>也有代码< >数组.aslist < /c>>

严格地说,例外是由于<代码> 1位的ARAYLIST/<代码>的位置0。请注意在哪里启动循环索引变量<代码> x>代码>,但是请考虑这行:

ArrayList <Objects> xcoords = new ArrayList<Objects>();
然后,在
main
方法中

public static void main(String [] args) { // add correct arguments

    //..
    ArrayList <Integer> xcoords = (new Objects()).xco();

    for( int x = 0 ; x < xcoords.size() ; x++ ) { // start from index 0
        System.out.println(xcoords.get(x));
    }
}
publicstaticvoidmain(String[]args){//添加正确的参数
//..
ArrayList xcoords=(新对象()).xco();
对于(intx=0;x严格地说,例外是由于使用0个元素对<代码> ARARYLIST/<代码>的位置1进行索引。请注意在哪里启动循环索引变量<代码> x<代码>。但是请考虑这一行:

ArrayList <Objects> xcoords = new ArrayList<Objects>();
然后,在
main
方法中

public static void main(String [] args) { // add correct arguments

    //..
    ArrayList <Integer> xcoords = (new Objects()).xco();

    for( int x = 0 ; x < xcoords.size() ; x++ ) { // start from index 0
        System.out.println(xcoords.get(x));
    }
}
publicstaticvoidmain(String[]args){//添加正确的参数
//..
ArrayList xcoords=(新对象()).xco();
对于(intx=0;x
您有一个
IndexOutOfBoundsException
,这意味着您试图访问数组中不存在的元素

但是在这里发布的代码中,您根本没有访问数组(for循环不会执行一次,因为列表为空),这意味着您的异常被抛出到其他地方

但您的代码也没有任何意义。我为您重构了它,同时尽可能靠近您的代码,以便您可以看到它是如何工作的:

public static void main(String[] args){
    Objects myObjects = new Objects();
    ArrayList<Integer> listFromMyObjects = myObjects.getList();
    for( int x = 0 ; x < listFromMyObjects.size() ; x++ )
    {
        System.out.println(listFromMyObjects.get(x));
    }
}


public class Objects
{   
    private ArrayList<Integer> myList;

    public Objects(){
        myList = new ArrayList<Integer>();
        myList.add(5);
        myList.add(25);
        myList.add(5);
        myList.add(5);
        myList.add(25);
        myList.add(5);
        myList.add(600);
        myList.add(400);
        myList.add(600);
    }

    public ArrayList<Integer> getList(){
        return myList;
    }
}
publicstaticvoidmain(字符串[]args){
Objects myObjects=新对象();
ArrayList listFromMyObjects=myObjects.getList();
对于(int x=0;x
您有一个
IndexOutOfBoundsException
,这意味着您试图访问数组中不存在的元素

但是在这里发布的代码中,您根本没有访问数组(for循环不会执行一次,因为列表为空),这意味着您的异常被抛出到其他地方

但您的代码也没有任何意义。我为您重构了它,同时尽可能靠近您的代码,以便您可以看到它是如何工作的:

public static void main(String[] args){
    Objects myObjects = new Objects();
    ArrayList<Integer> listFromMyObjects = myObjects.getList();
    for( int x = 0 ; x < listFromMyObjects.size() ; x++ )
    {
        System.out.println(listFromMyObjects.get(x));
    }
}


public class Objects
{   
    private ArrayList<Integer> myList;

    public Objects(){
        myList = new ArrayList<Integer>();
        myList.add(5);
        myList.add(25);
        myList.add(5);
        myList.add(5);
        myList.add(25);
        myList.add(5);
        myList.add(600);
        myList.add(400);
        myList.add(600);
    }

    public ArrayList<Integer> getList(){
        return myList;
    }
}
publicstaticvoidmain(字符串[]args){
Objects myObjects=新对象();
ArrayList listFromMyObjects=myObjects.getList();
对于(int x=0;x