Java 在方法中使用binarySearch

Java 在方法中使用binarySearch,java,binary-search,Java,Binary Search,它给了我一个可以理解的错误,因为indexOfkey方法有一个int返回类型。该方法所做的一切是,如果找到键,则用给定值替换其现有值。如果密钥不存在,请按排序顺序将密钥添加到密钥列表中,并在同一位置添加值,以获取您需要使用二进制搜索获取索引的密钥,然后使用该索引获取实际密钥: public V put(K key, V value) { int keyIndex = this.indexOf(key); K getKey = keys.get(keyIndex);

它给了我一个可以理解的错误,因为indexOfkey方法有一个int返回类型。该方法所做的一切是,如果找到键,则用给定值替换其现有值。如果密钥不存在,请按排序顺序将密钥添加到密钥列表中,并在同一位置添加值,以获取您需要使用二进制搜索获取索引的密钥,然后使用该索引获取实际密钥:

public V put(K key, V value) 
 {
     int keyIndex = this.indexOf(key);
     K getKey = keys.get(keyIndex);
     for(int i = 0; i < keys.size(); i++)
     {
         if(getKey == keys.get(i))
         {
             keys.set(i, (K) value);
         }
         else 
         {
             keys.add(getKey);
             vals.add(value);
         }
     } 
     return value;
 }

什么是钥匙?如果indexOf总是返回一个int,为什么要用K而不是int来捕获返回值呢?哇,我不明白你想要什么。但是我建议你声明这个公共类MyComparator实现了类似于这个公共类MyComparator的Comparator如果你打算对密钥进行完整的线性扫描,那么进行二进制搜索的意义是什么?@PatriciaShanahan,我对密钥进行线性扫描的意思是什么?