Arrays.sort(array, new Comparator<String>()
{
public int compare(String s1, String s2)
{
return s1.compareTo(s2);
}
});
看到代码我得困惑
1、Comparator不是接口吗?怎么还new起来了?
2、compare中的s1和s2也没输入怎么比较的呢?
结果
1、Comparator是实现接口的匿名类
需要补充的知识是 函数式编程 和 Lambda基础
new Comparator() 这段代码都是在实现接口,因为是单方法只有compare一个方法实现就好
{
public int compare(String s1, String s2)
{
return s1.compareTo(s2);
}
}
单方法接口,即一个接口只定义了一个方法:
常见的有
Comparator
Runnable
Callable
2、传入一个Comparator实例参与Arrays.sort,sort方法中才会把array中的每个String进行比较