一个java的问题,请高手指点一下

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:51:30
import java.util.*;
public class AlphabeticSearch {
public static void main(String[] args) {
String[] sa = Generated.array(new String[30],
new RandomGenerator.String(5));
Arrays.sort(sa, String.CASE_INSENSITIVE_ORDER);
System.out.println(Arrays.toString(sa));
int index = Arrays.binarySearch(sa, sa[10],
String.CASE_INSENSITIVE_ORDER);
System.out.println("Index: "+ index + "\n"+ sa[index]);
}
}
书上的解释说:如果排序的时候用到了 Comparator ,那么binarySearch( )的时候,也必须使用同一个 Comparator (用这个方法的重载版)。
这些解释不是很懂,本例中的binarySearch方法是不是也重载过?API中没有这种binarySearch方法啊

这是匿名内部类 可以声明一个接口的实现类,这是没问题的.
如果接触后台,你可能经常做这样的声明 XXDAO xx= new XXDAOHibernateImpl(); 其中XXDAOHibernateImpl就是XXDAO的实现类,这句话表达的是声明一个XXDAO接口类型的变量,这变量指向这个接口某一实现类的实例。

举个例子:
public interface UserDAO{
public void save(User u);
}
public class UserDAOImpl inplements UserDAO{
public void save(User u){
.......;
}
}

完全可以这样声明:UserDAO dao = new UserDAOImpl();