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

问题描述

遍历数据是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,这个是我实体类的名字

解决方案

首先,你使用的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+"]";
     }
 }

解决方案二:

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

解决方案三:

Map 集合数据遍历
javaweb --- jsp页面遍历list类型的数据
集合遍历(List、Set、Map)

解决方案四:

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

解决方案五:

正解,你需要重写实体类的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去掉,或者改成你想要的样子

解决方案六:

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'));
}

时间: 2024-09-17 03:40:14

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

java 循环遍历元素是map类型的list报类型转换异常

问题描述 java 循环遍历元素是map类型的list报类型转换异常 类型不匹配:不能从元素类型 Object 转换为 Map 怎么解决 各位朋友有没有知道这种情况的 这是别人的源码反编译出这个错 解决方案 可以使用以下三种方式之一: 第1种:修改List变量的定义,声明uniqueValueList的时候,指定元素的类型:List<Map> uniqueValueList = bizlockDataProvider.getUniqueRuleValue(obj); 第2种:修改foreach

JDBC如何遍历Mysql的set类型列

问题描述 JDBC如何遍历Mysql的set类型列 解决方案 List<对象名> list = new ArrayList<对象名>();while(rs.next()){ 对象名 对象 = new 对象名(); 对象.set..(rs.getString("name")); Set<另一个对象> s = new HashSet(); ResultSet re=db.execQuery("SELECT * FROM 另一个对象表 where

python中for语句简单遍历数据的方法

  这篇文章主要介绍了python中for语句简单遍历数据的方法,以一个简单实例形式分析了Python中for语句遍历数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了python中for语句简单遍历数据的方法.分享给大家供大家参考.具体如下: 代码如下: for name in ["kak", "John", "Mani", "Matt"]: print(name) 运行结果如下: 代码如下: kak J

初学者,想问大神,如何比较一组数据, 不同类型的 数据 ?求指教

问题描述 初学者,想问大神,如何比较一组数据, 不同类型的 数据 ?求指教 想问大神,如何比较一组数据, 不同类型的 数据 ?求指教,别人说可以用链表(我不会)有别的方法吗 解决方案 比较数据的关键不在链表还是数组,而在于算法本身. 如果你觉得链表复杂,就用数组,以及任何你可以用来表示一组数字的类型. 解决方案二: 不同类型的 数据,你的比较规则是什么? 一组数据,是如何保存的呢?如果是连续保存,直接按内存中的内容比较,简单一些:除非是按链表保存的,才可以用链表.否则不是在自找麻烦! 解决方案三

从nosql中取出数据为json类型的字符串,是否需要转换下类型 ,然后再前台展示,

问题描述 从nosql中取出数据为json类型的字符串,是否需要转换下类型 ,然后再前台展示, {"22224":{"201511046623792932":"{phone_no=15928785426, event_id=151030112638529659, voice_id=2, id_no=22224}","201511046623793251":"{phone_no=15928785426, event_i

修改数据库字段-请问怎么用sql语句去修改sqlite中的数据字段的类型呢?

问题描述 请问怎么用sql语句去修改sqlite中的数据字段的类型呢? 我现在想写一个方法,用来修改sqlite数据库中某个表中的某个列的类型,因为现在客户需要发生变化了,我需要在数据完整的情况下吧数据类型给改变了,也就是说我不能替换数据库,哪就只有用sql语句去修改类型了,跪求高手... 解决方案 sqlite数据库中数据类型存在sqlite_master表中 select sql from sqlite_master where tb_name='tbname' 把这条sql语句改了,表结构

mongodb数据锁定的类型

问题描述 mongodb数据锁定的类型 mongodb数据锁定的类型有哪些啊?是如何进行的?我是一个初学者,求大神指教~ 解决方案 http://blog.csdn.net/cabing2005/article/details/7440967

在 javaweb中 使用 foreach遍历数据,求帮助

问题描述 在 javaweb中 使用 foreach遍历数据,求帮助 用两张表 (年级表).(班级表) 如何在页面上 根据年级 遍历出 班级

求解决-c语言数据变量赋值类型

问题描述 c语言数据变量赋值类型 假定有一个程序,它把一个long整型变量赋值给一个short整型变量.当你编译程序的时候会发生什么情况?当你运行程序时会发生什么情况?你认为其他编译器的结果是否也是如此? 解决方案 long整型变量赋值给一个short整型 会报错,类型转换出错,long转short大范围转小范围错误 解决方案二: C语言是一种简陋而充满陷阱的语言,它需要程序员格外小心,而不是依赖完备的运行时检查和编译检查. 其它编译器,如果是C编译器,大多如此.当然现代的C++编译器,比如VC