引用

    下面Blog引用了该文:
  • 在线rss阅读器

    Blog:记录成长
    2007-12-27 21:26:33

    评论

  • 作者的牛,我的完全是投机取巧,呵呵,没戏
    agilejava回复MJiA说:
    呵呵,我昨天晚上等到很晚才看到答案,看完了的感觉就是太牛了。
    2007-12-25 11:27:47
  • List<Object> list = new ArrayList<Object>(1);
    list.add(foo);
    HashSet<Object> anSet = (HashSet<Object>)set.clone();
    anSet.retainAll(list);
    Object[] result = new Object[1];
    result = anSet.toArray(result);
    System.out.println(result[0] + " " + result[0].getClass());

    瞎试,反正不用iterate,呵呵,不知道对不对
    agilejava回复MJiA说:
    在jdk6里的retainAll的实现是:
    public boolean retainAll(Collection c) {
    boolean modified = false;
    Iterator e = iterator();
    while (e.hasNext()) {
    if (!c.contains(e.next())) {
    e.remove();
    modified = true;
    }
    }
    return modified;
    }
    在这里面还是用了iterator 。

    MJiA这招够漂亮,我就没想到,我估计那个作者也是这么想的,超赞 :)

    我钻到牛角尖里去了,我想的办法是:
    1.通过反射将anSet 中的map属性得到
    2.再通过反射调用map.getEntry(Object key),得到一个Map.Entry 对象entry,如果entry不为空的话,那么entry.key就是要找的那个东西了。
    2007-12-24 17:24:38

发表评论

您将收到博主的回复邮件
记住我