如何将ArrayList <string>转换为String </string>

时间:2013-03-12 19:16:41

标签: java

这是我的代码:

ArrayList<String> contentArray = new ArrayList<String>();

for(HashMap<ArrayList<String>, String> subTopicsEntry : subTopics){
    contentArray = (ArrayList<String>) subTopicsEntry.get("Content");
}

它给我一个错误,即arraylist不能转换为java.lang.string。

这里有什么问题?

如果我这样做:

ArrayList<?> contentArray = new ArrayList<?>();

for(HashMap<?, ?> subTopicsEntry : subTopics){
    contentArray = (ArrayList<?>) subTopicsEntry.get("Content");
}

它有效

有什么区别?

3 个答案:

答案 0 :(得分:0)

首先Arrays.asList()返回List<String>,而不是ArrayList<String>

您必须将变量定义为:

List<String> contentArray = new ArrayList<String>();

但这不是你在这里遇到的所有问题。

答案 1 :(得分:0)

评论者注意到,您(可能)错误地声明了您的地图。也许你的意思是

ArrayList<String> contentArray = new ArrayList<String>(); // this initializer is unnecessary, btw

for(HashMap<String, ArrayList<String>> subTopicsEntry : subTopics){
  contentArray = subTopicsEntry.get("Content"); // Note that a cast is no longer necessary
}

我怀疑你是否真的想要ArrayList在这里,但是如果没有看到你的其余代码那就很难说了。

答案 2 :(得分:0)

我的回答代码是:

package Examples;

import java.util.ArrayList;
import java.util.List;

public class ExampleClass
{
private List<String> _list;

@Override
public String toString() // override default method
{
    String temp = "";
    for (String s : this._list)
    {
        temp += (temp.length() == 0 ? "" : ", ") + s;
    }
    return "ExampleClass: [" + temp + "]";
}

public ExampleClass() // initialize this example class
{
    this._list = new ArrayList<>();
    this._list.add("Hello!");
    this._list.add("Ciao!");
    this._list.add("Good morning!");
    this._list.add("Good afternoon!");
}
}

/*

// some code for using example
ExampleClass ec = new ExampleClass();
// prints next text to console:
// ExampleClass: [Hello!, Ciao!, Good morning!, Good afternoon!]
System.out.println(ec.toString());

*/

祝你有个愉快的一天。由里