怎么把两个list的内容放到一个容器里然后输出比如说

比如说list1内容为时间Amoney2011-10502011-111002011-12200list2的内容时间Bmoney2011-091502011-113002... 比如说 list1内容为
时间 Amoney
2011-10 50
2011-11 100
2011-12 200
list2的内容
时间 Bmoney
2011-09 150
2011-11 300
2011-12 200
输出为这样
时间 Amoney Bmoney
2011-09 0 150
2011-10 50 0
2011-11 100 300
2011-12 200 200
怎么实现这个东东?
展开
 我来答
Irreproducible
2012-04-05 · TA获得超过451个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:452万
展开全部
这个的实际需求和你的标题相差略远了...
首先我可以认为这两个list里面元素的结构就不同,第一个有amoney域,第二个只有bmoney域
你需要建立一个数据结构,同时拥有这两个域,然后建立一个该结构的list

然后把list1和list2的数据都加进去,保证时间相同的会合并,同时给缺少的值赋予默认值。
更多追问追答
追问
您能受累给写个java代码吗 ,费了半天劲还没弄出来呢 ,谢谢了
追答
后序回答字数有限,所以只贴合并方法本身,测试方法删去了

import java.util.ArrayList;

public class Test{

static ArrayList merge(ArrayList list1,
ArrayList list2) {

ArrayList list = new ArrayList();
java.util.Collections.sort(list1);
java.util.Collections.sort(list2);

SingleMoney money1, money2;
java.util.ListIterator i1 = list1.listIterator(),
i2 = list2.listIterator();
while (i1.hasNext() && i2.hasNext()) {
money1 = i1.next();
money2 = i2.next();

if (money1.compareTo(money2) 0) {
list.add(new DoubleMoney(money2.time, 0, money2.money));
i1.previous();
} else {
list.add(new DoubleMoney(money1.time, money1.money,
money2.money));
}
}

while (i1.hasNext()) {
money1 = i1.next();
list.add(new DoubleMoney(money1.time, money1.money, 0));
}
while (i2.hasNext()) {
money2 = i2.next();
list.add(new DoubleMoney(money2.time, 0, money2.money));
}

return list;
}

static class SingleMoney implements Comparable {
SingleMoney(String t, int m) {
time = t;
money = m;
}
String time;
int money;

public int compareTo(SingleMoney o) {
return time.compareTo(o.time);
}
}

static class DoubleMoney {
DoubleMoney(String t, int a, int b) {
time = t;
aMoney = a;
bMoney = b;
}
String time;
int aMoney, bMoney;
}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式