【问题标题】:ArrayList inside ArrayList - Trouble Accessing ValuesArrayList 中的 ArrayList - 无法访问值
【发布时间】:2012-11-19 22:12:25
【问题描述】:

这是我的方法:

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”,它将分别打印出来( [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));
}

谁能帮我解决我哪里出错了? 我读过一些关于使用对象的东西?但不确定如何!

谢谢!

【问题讨论】:

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

标签: java multidimensional-array arraylist


【解决方案1】:

如果您开始使用泛型,即List<List<String>> myList,您会发现使用集合更容易。此外,为什么不创建一些存储类型值而不是依赖索引列表的实际类呢?

除此之外......

System.out.println((schedule.get(0)).x().get(1));

如果调度的类型是 ArrayList,那么 schedule.get(0) 将返回 Object 类型的东西,除非你执行显式转换。由于 Object 没有会产生错误的方法 x() 。您通常可以通过在一行中不包含如此多的链式函数调用来缩小这些内容的范围。这样做会导致很难判断给定错误指的是什么。

如果计划被声明为List<List<String>> 甚至List<List<Object>>,那么你就可以这样做:

List<String> classInfo = schedule.get(0);
String classLength = classInfo.get(1);
System.out.println(classLength);

认为是你真正的目标

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2020-11-21
    相关资源
    最近更新 更多