kjwangxun
2016-05-24 03:22
采纳率: 69.2%
浏览 1.7k
已采纳

遍历数据是map类型的list集合出问题了

我从数据库获得了list,转换成json格式是这个。
控制台上打出是这个形式:
[{"name":"羊毛衫","num":20},{"name":"羽绒服","num":32},{"name":"短袖","num":11},{"name":"毛衣","num":25},{"name":"长袖","num":42}]
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
控制台打印出的是这个:
Echars [num=20, name=羊毛衫]
Echars [num=32, name=羽绒服]
Echars [num=11, name=短袖]
Echars [num=25, name=毛衣]
Echars [num=42, name=长袖]
怎么前面多了个Echars,这个是我实体类的名字

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 毕小宝 2016-05-24 03:51
    已采纳

    首先,你使用的system.out.pirntln(list.get(i));打印某个对象,本质jkd是调用对象的toString方法的。
    其次,打印结果说明你的实体的toString 方法就是Echars [num=20, name=羊毛衫]这个输出格式的。
    最后,你想打印什么格式的数据呢?可以根据需要拼接字符串的形式,而不是直接打印对象。如果你像去掉Echars的话,可以自己拼接打印字符串,重写Echars类的toString方法,参考:

     public class Echars{
       //属性
    
         public String toString(){
                 retrun "[num="+count+", name="+name+"]";
         }
     }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2016-05-24 03:31

    System.out.println(list.get(i));
    ->
    System.out.println(list.get(i).num + "," + list.get(i).name);
    这是正常的,你没有重写toString。

    评论
    解决 无用
    打赏 举报
  • Royal_lr 2016-05-24 03:55

    list.get(i),,你的list里面放的是Echars这个对象,,直接打印这个对象的话,,肯定是这样,,list.get(i).getNum()就可以取出实体类中的数据了

    评论
    解决 无用
    打赏 举报
  • effiu 2016-05-24 14:02

    正解,你需要重写实体类的toString()方法,
    像这样(我的一个生成的toString()方法):
    public String toString() {
    return "Category [categoryId=" + categoryId + ", categoryCode="
    + categoryCode + ", categoryName="
    + categoryName + ", categoryLevel=" + categoryLevel
    + ", categoryStatus=" + categoryStatus + ", categoryOrder="
    + categoryOrder + ", createdPreson=" + createdPreson + ", updatedPerson=" + updatedPerson + "]";
    }
    你可以把return 最前面的Category去掉,或者改成你想要的样子

    评论
    解决 无用
    打赏 举报
  • Baple 2016-05-25 03:28

    for(int i=0;i<list.size();i++){
    Map map =(Map)list.get(i);
    System.out.println("num"=map.get('num')+",name="+map.get('name'));
    }

    评论
    解决 无用
    打赏 举报