Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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内部的ArrayList-访问值时出现问题_Java_Multidimensional Array_Arraylist - Fatal编程技术网

Java ArrayList内部的ArrayList-访问值时出现问题

Java ArrayList内部的ArrayList-访问值时出现问题,java,multidimensional-array,arraylist,Java,Multidimensional Array,Arraylist,以下是我的方法: public static ArrayList collectSchedule(ArrayList schedule, ArrayList list, int counter) { ((ArrayList) list.get(counter)).add(schedule); System.out.println(list); return list; } public static ArrayList getClassInfo(int count) {

以下是我的方法:

public static ArrayList collectSchedule(ArrayList schedule, ArrayList list, int counter)
{
    ((ArrayList) list.get(counter)).add(schedule);
    System.out.println(list);
    return list;
}
public static ArrayList getClassInfo(int count)
{
    Scanner stdIn = new Scanner (System.in);
    String userInput;
    System.out.print("Enter the name of class #" + count + " : ");
    userInput = stdIn.nextLine();
    ArrayList x = getClassTime();
    x.add(0, userInput);
    x.add(1, getClassLength());
    x.add(2, getDayOfTheWeek());
    return x;
}
因此,我从getClassInfo(一个ArrayList)中获取值“x”,并将其与一个数字(我想要它的位置的索引)和另一个ArrayList(我们称之为“schedule”)一起输入方法collectSchedule。我将“x”(ArrayList)添加到ArrayList“schedule”中。如果我打印出“x”,它将显示“schedule”的所有值。(注意:我在计划中添加了多个不同的“x”实例!)。因此,如果我将3个不同的“x”添加到“schedule”中,它将分别打印它们([x,x,x][x,x,x][x,x,x])。我很难从“schedule”中只获取单个值“x”

我原以为这段代码可以工作,但它在编译时给了我一个错误

public static void creation(ArrayList list)
{
    System.out.println((schedule.get(0)).x().get(1));
}
谁能帮我找出哪里出了问题? 我读了一些关于使用对象的东西?但不知道怎么做


谢谢

如果您开始使用泛型,即
列出myList
,您会发现使用集合要容易得多。另外,为什么不创建一些实际的类来存储类型化的值,而不是依赖索引列表呢

除此之外

System.out.println((schedule.get(0)).x().get(1));
如果schedule的类型是ArrayList,那么schedule.get(0)将返回Object类型的内容,除非执行显式转换。因为对象没有将生成错误的方法x()。通常,您可以通过在一行中不包含这么多链接函数调用来缩小这一范围。这样做很难判断给定的错误指的是什么

如果计划被声明为
List
或甚至
List
,则您可以执行以下操作:

List<String> classInfo = schedule.get(0);
String classLength = classInfo.get(1);
System.out.println(classLength);
List classInfo=schedule.get(0);
字符串classLength=classInfo.get(1);
System.out.println(类长度);

我认为这正是您真正的目标

如果您开始使用泛型,即List myList,您会发现使用集合要容易得多。