在排序列表中查找项目所在的位置

时间:2014-11-12 18:16:33

标签: java android algorithm list sorting

我有一个按名字排序的列表:

[0] Abe Lock
[1] Christine Wilson
[2] John Daily
[3] Rita Butler

我想使用java ArrayList方法插入名称“Henry Bosh”:add(int index, E element)。查找“Henry Bosh”放置位置的索引的最有效方法是什么,并且仍然对arraylist进行排序?

1 个答案:

答案 0 :(得分:0)

如果列表已经排序,最有效的方法是使用二进制搜索。 Java有一个内置的二进制搜索,可以使用您可以使用的集合:

arraylist.add(Collections.binarySearch(arraylist, newString), newString)
如果您不希望重复,

应该有效,否则您可能需要制作自定义二进制搜索功能

您也可能需要修改列表的compareTo函数