如何使用 Collections.binarySearch for ArrayList<List<String>> arr in java
How to use Collections.binarySearch for ArrayList<List<String>> arr in java
我有一个 ArrayList<List<String>>
,我正在尝试在集合中使用内置的二进制搜索,但我总是遇到错误
int index = Collections.binarySearch(arraylistdata, id);
其中 arraylistdata 是我的 ArrayList
of List<String>
.
public class CollectionsTest {
@Test
void test() {
List<String> list = List.of("a", "b", "c");
int index = Collections.binarySearch(list, "b");
Assertions.assertEquals(1, index);
}
}
这很好用,但你需要知道 Collections#binarySearch
接受 List<? extends Comparable<? super T>>
作为它的第一个参数。
虽然在您的情况下,ArrayList<List<String>>
不符合要求,因为 List<String>
或 List<?>
本身不是 Comparable
对象。
我有一个 ArrayList<List<String>>
,我正在尝试在集合中使用内置的二进制搜索,但我总是遇到错误
int index = Collections.binarySearch(arraylistdata, id);
其中 arraylistdata 是我的 ArrayList
of List<String>
.
public class CollectionsTest {
@Test
void test() {
List<String> list = List.of("a", "b", "c");
int index = Collections.binarySearch(list, "b");
Assertions.assertEquals(1, index);
}
}
这很好用,但你需要知道 Collections#binarySearch
接受 List<? extends Comparable<? super T>>
作为它的第一个参数。
虽然在您的情况下,ArrayList<List<String>>
不符合要求,因为 List<String>
或 List<?>
本身不是 Comparable
对象。