我正在尝试迭代LinkedHashMap,但它没有进入正确的我已经附上了下面的代码
for (int g = 0; g < list_Fields.size(); g++) {
System.out.println("Hello ListOFFields:" + list_Fields.get(g));
row = (LinkedHashMap) list_Fields.get(g);
Iterator ie = row.keySet().iterator();
while (ie.hasNext()) {
String colName = ie.next().toString();
System.out.println("<TD>" + colName + "</TD>");
}
}
我不知道为什么它做得这么笨拙。以下是我们在Java中迭代集合时通常做的事情(如果您使用的是LinkedHashMap,我假设您使用的是Java 5+)
// assume listField is Collection<Map<String,ANYTHING>>
for (Map<String,ANYTHING> row : listFields) {
for (String ie : row.keySet()) {
System.out.println("<TD>" + ie +"</TD>");
}
}
按照您想要的方式修改它如果你只想要键,那么使用keySet()而不是entrySet()
给你:
public static List<LinkedHashMap<Object,Object>> dummy = new ArrayList<LinkedHashMap<Object,Object>>();
public static void display(){
for(LinkedHashMap<Object,Object> map : dummy){
for (Map.Entry<Object, Object> entry : map.entrySet()) {
Object key = entry.getKey();
Object value = entry.getValue();
//Your code
}
}
}
我想应该是这样的:
for (Entry entry: map.entrySet())
{
System.out.println(entry.getKey() + " = " + entry.getValue());
}
遍历字段列表,在迭代中遍历值集合。最终,您将得到一个每行字段的表,其中包含混合数量的数据。
如果你想得到一个简单的表-改变你的字段/数据集合的顺序,并切换你的迭代顺序,你先迭代行,后迭代字段:
List<Map<String,String>> rows = ...
for ( Map data : rows ) {
System.out.println("<TR>");
for ( String fld : list_Fields ) {
System.out.println("<TD>" + data.get(fld) + "</TD>");
}
System.out.println("</TR>");
}