我的表里现在有这些数据
index   name      age
1        A        22
2        B        23
3        C 22
4        D 12
5        E 12
6        F 22
7        G 23
8        H 21
9        I 21
10       J 18建立这张表的类
class People{
int index;
String name;
int age;
}
Vector<People> vPeople = new Vector<People> ();//将这10条数据存入vPeople中
问题来了:我现在想把年龄相同的存在一个Vector中。也就是说是一个嵌套的Vector<Vector<People>> vvPeople
内层的Vector是所有年龄相同的vector,如上例中外层的vector的size = 5,因为有5种年龄。
请问如何从vPeople中解析出vvPeople?谢谢
我先说下我的想法:我是把vPeople按照AGE排序,然后从0索引,0和1比较,如果年龄不相等就新建一个vector,
相等就存入当前VECTOR,但实现起来总是会丢失size()-1那个元素。请问你们有什么好办法吗?

解决方案 »

  1.   

    以前遇到过类似问题
    你看看你有没有把最后一个加入到vector中去
    在最后一个需要特殊处理一下
      

  2.   

    我建议这个问题 用 map处理 ,就不用你做的这么麻烦了
      

  3.   

    Map比较好 不过尽量不要在MAP里面套集合 在键上做点手脚 比如年龄+用户做KEY
      

  4.   


    是啊,最后一个元素很头痛。感觉实现起来不太明智。就是想问有没啥好方法,请告知 MAP 是怎么个简单法?我对你的回答很感兴趣。
      

  5.   

    map<age,Vector> 用一个age映射一个和这个age相对应的vector
      

  6.   

    这个问题用MAP很简单就解决了:最后的存储结构为:
    Map<Integer,List<People>> data ,key为年龄。list为同一年龄的People的集合。
    组合数据的方法为:
    循环Vector <People> vPeople = new Vector <People> ();
    判断People的age在data中是否存在,如果存在,则取出来,添加当前People进去,如果不存在,则创建一个List<People>,添加当前People进去,然后把该list放入data就可以了。10行代码就搞定了。
      

  7.   

    看来我得好好看看MAP,基本没用过MAP
      

  8.   

    兄弟,看来你得真的要好好补补基础了,MAP结构很常用的。
      

  9.   

    谢谢大家。搞定了。找的就是MAP
      

  10.   

    oh,my god,你是小学生?不会吧,想想我读大学才会计算机,而你小学就会java了,将来一定有所作为。