为什么袋子被认为是未订购的?

Why are bags considered unordered?

包存储在数组中。我知道我们可以根据需要更改袋子的大小等。但是,由于它存储在数组中,所以它基本上有一个索引号,不是吗?既然如此,为什么我们还说它是无序的呢?

Bags are stored in arrays

不,他们不是。

实际上,它们 可能 取决于 实现 ,但它们肯定不必如此。这就像说 List is stored in an array. That is e.g. true for an ArrayList, but not true for a LinkedList.

那么baglistset有什么区别呢?

  • A list 有序,允许重复

    • 通常按值查找速度较慢。
    • ArrayList 实现使用数组,按位置快速查找。
    • LinkedList 实现使用双向链接节点,在列表开头有快速 insert/remove。
  • A set 无序,无重复

  • 一个无序,允许重复

    • 无内置 Java 支持。如果需要,通常只使用 List
      如果需要按值快速查找,建议使用第三方库。

术语的 定义 指定了 有序 无序 语义。包 的实现可能 碰巧保持排序,但通用术语 bag.

不需要它

Java.

中关于 bags 的困惑让我们来澄清一下 其中

None个指定bag为list,none个使用array实现bag