【问题标题】:how do i make sure items in a list is sequential ?如何确保列表中的项目是连续的?
【发布时间】:2012-04-02 21:40:00
【问题描述】:

美好的一天!

我想问一下我是否有一个项目清单,比如 1,2,3,4,5.. 然后我将替换值“3”插入“7”,这将提示我一个错误,因为列表不是连续的。

List<Domain> items = new ArrayList<Domain>();

【问题讨论】:

  • 为什么不写一个方法来检查你要插入的项目是否比它的前一个大,比它的后继小?

标签: java list arraylist


【解决方案1】:

您可以重写 ArrayList、set 和 add 方法来检查设置/添加的项是否有效,如果不是则抛出 IllegalArgumentException。

为什么没有一个总是排序的集合。

SortedSet<Domain> items = new TreeSet<Domain>();

这样,您添加的项目将始终在正确的位置。

【讨论】:

    【解决方案2】:

    扩展 ArrayList 并覆盖 add() & addAll() 方法,

    或者简单使用Comparator & TreeSet

    【讨论】:

      【解决方案3】:

      如果您想在替换元素时获得异常,就像您描述的那样,最好的方法是扩展或包装一个列表并覆盖添加方法。

      如果您真正想要的只是一个排序列表,请使用SortedSet 实现之一。

      【讨论】:

        【解决方案4】:

        如果您使用的是 Java 7,请尝试使用:

        http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html

        【讨论】:

          猜你喜欢
          • 2021-06-07
          • 1970-01-01
          • 2021-07-24
          • 2020-07-20
          • 2013-01-21
          • 2014-10-17
          • 2015-06-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多