我是Collections的新手,对于这个微不足道的问题,我很抱歉,但我一直在思考我在Java教程中读过的一句话
List是一个有序的Collection(有时称为序列)。
我从中理解的是,当我将元素放入列表中时,它会为我自动排序,因为我运行了一个简单的代码,它证明我错了:
List <String> list = new ArrayList<String>();
list.add("Chris");
list.add("Brian");
list.add("Matt");
list.add("Greg");
for (Iterator<String> it = list.iterator();it.hasNext();) {
System.out.print(it.next()+"\n");
}
导致不以任何方式订购:
Chris
Brian
Matt
Greg
所以我的问题是“列表是有序集合”是什么意思?
由于
答案 0 :(得分:4)
Ordered并不意味着排序,这意味着这些项目将按照您输入的顺序显示。
这与SortedSet形成对比,在SortedSet中,项目不按照您放入的顺序排序,它们将根据您放置的任何排序条件进行排序,或者HashMap,它们可能会显示在任何顺序,取决于哈希函数。
答案 1 :(得分:4)
List是一个有序的Collection(有时称为序列)。
这意味着List维护元素的顺序。换句话说,您添加的第一个元素保留在索引0处。您添加的第二个元素保留在索引1处。依此类推。
如果删除元素,则其余元素保持相同的顺序,尽管删除元素后面的元素会更改其索引位置。
答案 2 :(得分:1)
通过排序,这意味着每个元素都分配了一个索引,并且可以被该索引引用。在Set中,东西没有索引。
答案 3 :(得分:0)
它们按照您输入的顺序排序。不按字母顺序或数字顺序排序。无序列表(集合)就像是从袋子里拿出弹珠。
答案 4 :(得分:0)
它简单意味着如果按特定顺序放置对象,它们将保持该顺序。请注意您的名字的输入顺序与您输入的顺序相同。
将它与一组(另一种类型的集合)进行比较,其中它们以随机顺序出现(因为内部集合没有顺序)。这可以提供性能优势,如果顺序不重要,通常使用一个集合,如果重要的话使用一个列表。