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