返回Java中的iterable列表
我有返回Java中的iterable列表,java,data-structures,map,hashmap,Java,Data Structures,Map,Hashmap,我有Map Map=newhashmap() 假设我想通过增强的for循环打印出列表中的每个元素 执行map.get(KeyOftypeA)不会返回一个iterable列表…似乎它会返回一个通用的对象我该怎么做才能返回我输入的好列表并使其可编辑 编辑:下面是我试图运行的代码的完整列表 import java.util.*; public class StuffTag { public static void main (String[]args){ String
Map Map=newhashmap()代码>
假设我想通过增强的for
循环打印出列表中的每个元素
执行map.get(KeyOftypeA)
不会返回一个iterable列表…似乎它会返回一个通用的对象
我该怎么做才能返回我输入的好列表并使其可编辑
编辑:下面是我试图运行的代码的完整列表
import java.util.*;
public class StuffTag {
public static void main (String[]args){
String stuff;
List<String> tags = new ArrayList();
Map<String,List<String>> stuff_tags = new HashMap<String,List<String>>();
List<Map> list_stuff_tags = new ArrayList();
stuff="David and Goliath";
tags.add("fire");
tags.add("water");
tags.add("smoke");
tags.add("paper");
stuff_tags.put(stuff, tags);
list_stuff_tags.add(stuff_tags);
Map el =list_stuff_tags.get(0);
for(String x:el.get("David and Goliath"))
System.out.println(x);
}
}
import java.util.*;
公共类填充标签{
公共静态void main(字符串[]args){
弦乐;
列表标记=新的ArrayList();
Map stuff_tags=new HashMap();
List_stuff_tags=new ArrayList();
stuff=“大卫和歌利亚”;
添加(“火灾”);
标签。添加(“水”);
标签。添加(“烟雾”);
标签。添加(“纸张”);
填充标签。放置(填充,标签);
列出物品标签。添加(物品标签);
Map el=list\u stuff\u tags.get(0);
for(字符串x:el.get(“大卫和歌利亚”))
系统输出println(x);
}
}
List List=(List)map.get(KeyOfTypeA);
不管怎么说,似乎有什么不对劲。如果在编译时正确指定了A类型,则不需要执行该转换。如何指定类型
可能您没有指定类型。假设A是字符串类型,在代码中的某个地方,您应该这样做:
class yourClassStoringHashMap <A>{
Map <A, List<A>> map;
}
class whereYouInstantiate{
static void int main(){
yourClassStoringHashMap<String> instance = new yourClassStoringHashMap<String>();
//probably you are doing yourClassStoringHashMap instance = new yourClassStoringHashMap();
}
}
class yourClassStoringHashMap{
地图;
}
实例化的类{
静态void int main(){
yourClassStoringHashMap实例=新建yourClassStoringHashMap();
//可能您正在执行ClassStoringHashMap实例=新建yourClassStoringHashMap();
}
}
编译器应该在这一行给出警告
编辑:
问题出在这里
List<String> tags = new ArrayList(); //should be new ArrayList<String>
List tags=new ArrayList()//应该是新的ArrayList
您需要定义Map el的类型,例如,Map el=list\u stuff\u tags.get(0)代码>
这将对您有效。显示您如何尝试获取列表并执行for循环,因为这应该是有效的。我已将其包含在编辑中。。谢谢
List<String> tags = new ArrayList(); //should be new ArrayList<String>