Collections.binarySearch难度大

我是JAVA和Netbeans的新手,这就是我要做的事情:
用户可以在输入框中写入CD标题,然后按“删除”按钮从列表中删除CD。 如果集合中不存在CD,则可以在发件箱中显示消息以说明此情况。 我必须使用Collections.binarySearch()来执行此操作。 这只是整个计划的一部分,但我已经弄明白了其余部分。 这就是我所做的:

 ArrayList  songs = new ArrayList(); Collections.addAll(songs, "Metric - Fantasies", "\nBeatles - Abbey Road", "\nPearl Jam - Ten", "\nDoors - Alive", "\nThe Rolling Stones - Gimme Shelter\n"); Collections.sort(songs, String.CASE_INSENSITIVE_ORDER); Collections.binarySearch(songs,"",String.CASE_INSENSITIVE_ORDER); String delete=songs.remove(songs.size()-1); String out=""; String Out = null; for (int i = 0; i < songs.size(); i++) Out=out + songs;{ output.setText("Original Order\n**************\n" + Out+delete); 

我遇到的问题是,如果我添加自己的歌曲,然后按删除它有效,但如果我试图删除arraylist中的任何歌曲它不起作用。 非常感谢任何帮助,并提前感谢您!

您的代码始终会删除列表中的最后一首歌曲。 这就是为什么它“适用”您添加的歌曲。 它没有使用搜索结果。

 // binarySearch returns the position of the element in the list // Or a negative number if not found. int i = Collections.binarySearch(songs, "metric - fantasies", String.CASE_INSENTITIVE_ORDER); if (i < 0) { // Not found, display something } else { String deleted = songs.remove(i); } 

请记住,阅读API文档并了解方法的作用,而不是您认为它的作用。