循环线程arraylist

时间:2015-12-29 21:42:15

标签: java arrays arraylist

我在String数组上有一个简单的循环,然后将String传递给threadlist方法。但是,我似乎无法打印出两个字符串。它只打印第二个名称SELECT m.first, m.second FROM m.member INNER JOIN f.friendships ON f.id = m.id; ,这让我觉得我用第二个String覆盖了第一个String。如何让"Fred"同时包含字符串ArrayList"Tim"

"Fred"

2 个答案:

答案 0 :(得分:5)

您的问题的直接解决方案是每次调用方法threadList时都要实例化threadL变量。因此,在第二次调用时,忽略之前存储的内容并添加新内容:

public ArrayList<String> threadL(String e) {
    threadList = new ArrayList<>(); // <-- instantiates a new list each time it is called
    threadList.add(e);
    return threadList;
}

您应该只将该列表实例化一次,例如声明它的位置。此外,您绝对不应该使用List等原始类型,但始终使用键入的版本:

private List<String> threadList = new ArrayList<>();

请注意,在给定的示例中,您实际上没有使用任何ThreadRunnable功能(因为您没有覆盖run()或启动线程)。另外,prefer implementing Runnable over extending Thread

答案 1 :(得分:0)

每次循环时都要实例化一个新的数组列表。这就是为什么你看不到元素[0]的原因,因为它被新的列表取代了。