public class Main { public static void main(String[] args) { //创建一个集合对象(多态) Collection<String> names=new ArrayList<String>(); //添加 names.add("郭德纲"); names.add("刘德华"); names.add("柳岩"); names.add("范伟");
interface comparator{ int compare(int a,int b); //抽象方法 }
定义实现类(Mycomparator):
1 2 3 4 5 6
class Mycomparator implements comparator{ //实现类必须实现接口里面的所有抽象方法 @override public int compare(int a,int b){ return a-b; } }
1.使用接口实现类
1 2 3 4 5 6
public class ChengXu{ public static void main(String[] args){ comparator comparator1=new Mycomparator(); //多态(左边父类,右边子类) 编译在左,实现在右 comparator1.compare; } }
2.使用匿名接口类
1 2 3 4 5 6 7 8 9 10
public class ChengXu{ public static void main(String[] args){ comparator comparator2=new comparator(){ //哪个接口要实现就写哪个接口的匿名抽象类 @override public int compare(int a,int b){ return a-b; } } } }
3.使用Lambda表达式
1 2 3 4 5
public class ChengXu{ public static void main(String[] args){ comparator comparator3=(a,b) ->a-b; } }
一、两地调度: 公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。 返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。 示例: 输入:[[10,20],[30,200],[400,50],[30,20]] 输出:110 解释: 第一个人去 A 市,费用为 10。 第二个人去 A 市,费用为 30。 第三个人去 B 市,费用为 50。 第四个人去 B 市,费用为 20。
public int jump(int[] a) { int sum = 0; int zy = 0; // 能跳到的最远距离 int max = 0; // 下一步可以跳到的最远距离 for(int i = 0; i < a.length - 1; i++) { max = Math.max(max, i + a[i]); // 更新当前点 if(i == zy) { zy = max; sum++; } } return sum; }
public class Solution { public int mArea(int[] height) { int max=0; //存放最大值 for (int i=0;i<height.length;i++) for (int j=i+1;j<height.length;j++) max = Math.max(max, Math.min(height[i], height[j])*(j-i)); //最大面积=较短边×下标的差 return max; } }