我有一个按名字排序的列表:
[0] Abe Lock
[1] Christine Wilson
[2] John Daily
[3] Rita Butler
我想使用java ArrayList方法插入名称“Henry Bosh”:add(int index, E element)
。查找“Henry Bosh”放置位置的索引的最有效方法是什么,并且仍然对arraylist进行排序?
答案 0 :(得分:0)
如果列表已经排序,最有效的方法是使用二进制搜索。 Java有一个内置的二进制搜索,可以使用您可以使用的集合:
arraylist.add(Collections.binarySearch(arraylist, newString), newString)
如果您不希望重复,应该有效,否则您可能需要制作自定义二进制搜索功能
您也可能需要修改列表的compareTo函数