java中List取值的问题!

我有一个list,list里存得是数组,每个数组里存得是:1.商品名称2.商品价格3.店铺名称。现在我要遍历list取值,要求按店铺名称分开显示,就是同一店铺的商品放一起... 我有一个list,list里存得是数组,每个数组里存得是:1.商品名称 2.商品价格 3.店铺名称。
现在我要遍历list取值,要求按 店铺名称 分开显示,就是同一店铺的商品放一起。
这样该如何遍历这个list,求高手指教,新手,写个简单的例子最好,谢谢了。
展开
 我来答
老油条精选
推荐于2018-03-11 · TA获得超过147个赞
知道答主
回答量:108
采纳率:0%
帮助的人:85.1万
展开全部
List<String[]> list = new ArrayList<String[]>();
String[] ss1 = {"名称1","10","商店1"};
String[] ss2 = {"名称2","20","商店2"};
String[] ss3 = {"名称3","30","商店1"};
list.add(ss1);
list.add(ss2);
list.add(ss3);

HashMap<String, String> has = new HashMap<String, String>();
for (String[] strs : list) {
String shopName = strs[2];
if(has.containsKey(shopName)) {
has.put(shopName, has.get(shopName) + "," + strs[0]);
} else {
has.put(shopName, strs[0]);
}
}
System.out.println(has);
更多追问追答
追问
公司开发用得jdk 1.4 不支持上述写法啊
HashMap has = new HashMap();
追答
1.4?太可爱了,好吧,你等等,我改改
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nanwang21
推荐于2016-11-28 · TA获得超过2943个赞
知道大有可为答主
回答量:1220
采纳率:82%
帮助的人:243万
展开全部
重写对象的toString() 方法或使用 for each 来循环,按照自己的要求输出即可。
代码示例:
public class TestOverride{
public static void main(String[] args){
List<Student> list = new ArrayList<Student>();
Student s1 = new Student("小明");
Student s2 = new Student("小强");
list.add(s1);
list.add(s2);

for(Student stu : list){
System.out.println(stu);
}
}
}

class Student{
String name;
public Student(String name){
this.name = name;
}
@Override
public String toString(){ //重写对象的toString() 方法
return name; //可以写成类似这样的形式 return s1+s2;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦冷凝
2011-08-24 · TA获得超过1568个赞
知道小有建树答主
回答量:1703
采纳率:25%
帮助的人:739万
展开全部
2楼的方法就完全满足题意啊,楼主看来基础还是欠缺啊这已经实现的很不错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hxy850809
2011-08-24 · TA获得超过160个赞
知道小有建树答主
回答量:569
采纳率:0%
帮助的人:323万
展开全部
不明白,你的List中存的数组还不一样?
那每个数组怎么联系?
能给我看些你的List的代码吗?
更多追问追答
追问
数组和数组还怎么联系啊
打个比方,就是这样的 String[] ss1 = {"名称1","10","商店1"};
String[] ss2 = {"名称2","20","商店2"};
String[] ss3 = {"名称3","30","商店1"};
list.add(ss1);
list.add(ss2);
list.add(ss3);
追答
我晕,你是要自己建数组啊,我还以为是从数据库读数据呢……
那这问题就太初级了……

2楼的方法就很好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不一定是飞机
2011-08-24 · TA获得超过827个赞
知道小有建树答主
回答量:270
采纳率:100%
帮助的人:326万
展开全部
你为什么不把封装为一个对象,然后list里面存对象。遍历对象就更方便了
追问
没法存对象,就这样能给写个例子么?
追答
那你只能循环根据店铺名称
就只能把数组当做对象了:
public static void main(String[] a) {
List list = new ArrayList();
String[] ss1 = {"名称1","10","商店1"};
String[] ss2 = {"名称2","20","商店2"};
String[] ss3 = {"名称3","30","商店1"};
list.add(ss1);
list.add(ss2);
list.add(ss3);

Map> map = new HashMap>();
for (String[] strs : list) {
String shopName = strs[2];
if(!map.containsKey(shopName)) {
map.put(shopName, new ArrayList());
}
map.get(shopName).add(strs);
}
System.out.println(map);
}

这时得到的map根据店铺名称分好类了,下一步操作在你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式