怎么把两个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
怎么实现这个东东? 展开
时间 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
怎么实现这个东东? 展开
展开全部
这个的实际需求和你的标题相差略远了...
首先我可以认为这两个list里面元素的结构就不同,第一个有amoney域,第二个只有bmoney域
你需要建立一个数据结构,同时拥有这两个域,然后建立一个该结构的list
然后把list1和list2的数据都加进去,保证时间相同的会合并,同时给缺少的值赋予默认值。
首先我可以认为这两个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;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询