【问题标题】:Add elements in multidimensional ArrayList in Java在Java中的多维ArrayList中添加元素
【发布时间】:2014-04-08 02:40:41
【问题描述】:

我想在 Java 中使用列表存储一些值(实际上是一条消息)。我想存储类似的东西:

{user1, message, user2, time}
{user1, message, user4, time}
{user3, message, user1, time} 

我已经声明了一个这样的数组列表:

public List<List<String>> message = new ArrayList<List<String>>();

如何在此列表中添加值以及如何获取此列表的特定行(比如说第二行)?

我试过了:

    message.get(0).add(msg, target,time);

但我得到一个错误:

"类型List中的add(String)方法不适用于 参数(字符串、字符串、整数)"

【问题讨论】:

  • 请查看您的问题重复的this stackoverflow question。
  • “但我得到一个错误”错误消息说什么?
  • 错误是“List类型中的方法add(String)不适用于参数(String, String, Integer)
  • @Galil 最好将信息放在原始帖子中而不是评论中。此信息很重要,不应强迫正在阅读您的问题的人在 cmets 中搜索它。您可以将 [edit] 选项放在您的问题下方。

标签: java list arraylist multidimensional-array


【解决方案1】:

你可以这样做:

List<Object[]> list = new ArrayList<Object[]>();        
Object[] ob = new Object[4];
ob[0] = "user1";
ob[1] = "messge1";
ob[2] = "user2";
ob[3] = "time1";

list.add(ob);       

ob = new Object[4];
ob[0] = "user2";
ob[1] = "messge2";
ob[2] = "user4";
ob[3] = "time2";
list.add(ob);

// Output the values
for(Object[] o : list){
    System.out.print(o[0] + "\t");
    System.out.print(o[1] + "\t");
    System.out.print(o[2] + "\t");
    System.out.print(o[3] + "\n");
}

输出将是:

user1 messge1 user2 time1

user2 messge2 user4 time2

【讨论】:

  • 我想这几乎就是我要找的东西,但是如果可能的话,您能否告诉我如何在没有 for 循环的情况下获得特定值(例如 message1)。此外,如何删除特定行?
  • (list.get(0))[3] // 返回时间 AND list.remove(0);删除第一个 {user1,msg,user2,time} 记录。
【解决方案2】:

通过

message.get(0);

您正在检索message 引用的列表列表中的第一个列表

List 具有 add(T object) 方法,因此您不能在一次调用中传递所有 3 个对象,一种方法是

message.get(0).add(msg);
message.get(0).add(target);
message.get(0).add(time);

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 2012-10-07
    • 2020-08-12
    相关资源
    最近更新 更多