java - 获取最后一个 LinkedHashSet

标签 java

我想存储一个数字列表 1,2,3,4 -(让我们从 List<Integer> 开始)

我想确保数字是唯一的(好的,很好,Set<Integer>)

我想保证订单(好的... LinkedHashSet<Integer>)

我想从列表中获取最后一个元素..

将最后一个数字插入到 LinkedHashSet<Integer> 中的最简单方法是什么?好吗?

最佳答案

没有为此预烘焙的选项。有两种现成的选择,但都不好:

Order n 方法:

public <E> E getLast(Collection<E> c) {
    E last = null;
    for(E e : c) last = e;
    return last;
}

呸!但还有一种 Order 1 方法:

class CachedLinkedHashSet<E> extends LinkedHashSet<E> {
    private E last = null;

    @Override
    public boolean add(E e) {
        last = e;
        return super.add(e);
    }
    public E getLast() {
        return last;
    }

}

这是即兴的,因此其中可能存在一个细微的错误,并且可以肯定这不是线程安全的或任何东西。您的需求可能会有所不同,并导致您采用一种方法而不是另一种方法。

关于java - 获取最后一个 LinkedHashSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024022/

相关文章:

Java : ConcurrentModificationException while iterating over list

java - 如何删除android系统栏(页脚栏)

java - Java Applet 中的音频无法播放

java - 玩2.4,报错: package play. *不存在

java - 如何强制或预测jstatd的第二个开放端口?

java - 使用 keyPressed 检测键盘方向键

java - 在 Scala 列表中搜索与属性匹配的内容

Java Collections.unmodifiableList() 时间复杂度

java - 在名称为 ___ 的 DispatcherServlet 中未找到 URL ___ 的 HTTP 请求的映射

java - SWT - AWT 桥