【问题标题】:How do I return an ArrayList<String> from ArrayList<ArrayList<String>>.get()如何从 ArrayList<ArrayList<String>>.get() 返回 ArrayList<String>
【发布时间】:2013-07-02 01:21:50
【问题描述】:

我有一个 ArrayList,例如:ArrayList&lt;ArrayList&lt;String&gt;&gt; test

for(int i = 0; i < test.size(); i++) {
    ArrayList temp = test.get(i);
}

现在事实证明,我不能这样做Arrays.deepToString(temp.toArray()),因为 temp 是一个对象,而不是 >。

另外,我正在做temp1.contains(temp.get()) temp1 和 temp2 实际上是具有相同值的对象 >。他们甚至在其中有一些常见的 ArrayList。但是,由于这个 Object 问题,这不起作用。

有什么方法可以让我基本上返回一个 ArrayList 左右而不是一个对象,这样我就可以让 .contains() 方法工作。正如我所说... temp 中的 ArrayList 具有相同数量的列,其中一些具有相同的值。

请帮帮我。

【问题讨论】:

  • 为什么不将 temp 声明为 ArrayList&lt;String&gt;
  • 注意:你也可以使用 foreach 使其更清晰:for(ArrayList&lt;String&gt; temp : test){ ... }

标签: java object arraylist getter-setter object-to-string


【解决方案1】:
ArrayList temp = test.get(i);

应该是

ArrayList<String> temp = test.get(i);

【讨论】:

  • 我该怎么做?
  • temp1.contains(temp.get(0)) 如果 temp1 也是一个字符串集合会这样做
【解决方案2】:

如果您参数化 ArrayList 并将返回类型传递给 toArray(),它应该可以正常工作。

for(int i = 0; i < test.size(); ++i){
    ArrayList<String> temp = test.get(i);
    temp.toArray(new String[]{});
}

toArray() 现在返回一个 String[]

【讨论】:

    【解决方案3】:
        ArrayList<ArrayList<String>> test=new ArrayList<>();
        ArrayList<String> list=new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        test.add(list);
        ArrayList<String> temp=new ArrayList<>();
        for(ArrayList<String> arr:test) {
            temp = arr;
        }
    

    【讨论】:

    • 那么 if(temp.toString().contains("")) 使用
    猜你喜欢
    • 2016-02-22
    • 2016-08-23
    • 1970-01-01
    • 2015-12-07
    • 2016-01-13
    • 2012-08-31
    • 1970-01-01
    • 2017-08-30
    • 2015-08-06
    相关资源
    最近更新 更多