RSS
热门关键字:  java  Ajax  JSP  JSF  Struts
当前位置 : 首页>Java>列表

浅尝ListOrderedMap-既有鱼肉又有熊掌

来源: 作者: 时间:2007-08-14 点击:
 要有序可以用List,要便于查找可以用Map,那既要有序又便于查找呢?

        最近我就遇到了这样一个问题,Java没有给我们提供现成的类,我们完全可以自己开发个类继承List和Map(Java原来就有不可以同时继承List和Map的Bug,因此特意去看了下这个Bug的状态——Closed,呵呵,应该是很老的版本才有的问题,用新版本的朋友不用担心会遇到这个问题),但是完全没必要白花那个力气,因为Apache的Commons Collections的Jar包里已经为我们提供了一个相当完备的类来满足我们这样的要求完全是绰绰有余。因此我们现在要做的仅仅是引入Jar包,然后使用这个现成的好东西——ListOrderedMap就可以啦。

         让我们来看看代码:

ListOrderedMap list = new ListOrderedMap();
for(int i = 0; i < objs.length; i++{
    list.put(objs[i].getId(), objs[i]);
}

        初始化很简单吧,没有一点技术难度,往里边放数据和Map没一点区别,需要注意的是Map我们可以在初始化的时候加上类型,比如Map<String, String>,但是ListOrderedMap不可以,就这么点差别,要记得哦。但是这个差别也是ListOrderedMap让人最不满意的地方,因为这说明他是类型不安全的。

        接下来,看看我们都用到了ListOrderedMap的哪些方法:

int themeId = ((Obj) list.getValue(0)).getThemeId();
int index = list.indexOf(key);
if (index == list.size() - 1{
    obj
= (Obj) list.getValue(0);
}
 else if (index != -1{
    obj
= (Obj) list.getValue(index + 1);
}

共2页: 上一页 1 [2] 下一页
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册