普林斯顿大学算法课 Algorithm Part I Week 3 自我总结

要熟练掌握比较器Comparator

public final Comparator<T> MY_COMPARATOR = new myComparator(); //定义比较器

.....

public int comparaTo(T t){

.....

}



private class myComparator implements Comparator<T>{

  public int compare(T v, T w){

  return v.comparaTo(w)                   

  //compare()是比较器里的重写方法

  //一般来说compareTo()是compare()的具体实现方法,但这不是固定的,只是习惯。你可以完全不用compareTo()

  }

}

 

Week3作业里提到的一些方法或类

  • toString()
  • draw.point()和draw.line():画点和画线段
  • Comparator
  • java.util.Arrays.sort(a, lo, hi)、java.util.Arrays.sort(a, lo, hi, Comparator)  ——> 很常用很重要的排序

 

代码风格:

return new MyClass() {

  @Override public void method() {

    if (condition()) {

      try {

        something();

      } catch (ProblemException e) {

        recover();

      }

    }

  }

};
  • 左大括号前不换行
  • 左大括号后换行
  • 右大括号前换行
  • 如果右大括号是一个语句、函数体或类的终止,则右大括号后换行; 否则不换行。例如,如果右大括号后面是else或逗号,则不换行。
void doNothing() {}
  • 一个空块状结构什么也不包含,不需要换行,括号写在一起。

 

if () {

// your code

}

else if {

// your code

}

需要空格的地方

  • 分隔任何保留字与紧随其后的左括号(()(如if, for catch等)。
  • 分隔任何保留字与其前面的右大括号(})(如else, catch)。
  • 如果在一条语句后做注释,则双斜杠(//)两边都要空格。这里可以允许多个空格,但没有必要。
  • 类型和变量之间:List list。
  • 数组初始化中,大括号内的空格是可选的,即new int[] {5, 6}和new int[] { 5, 6 }都是可以的。

参考:Google Java Style中文版


 

需要加强的部分  

  • API文档的查看
  • 编辑器的使用(不会用,心情被搞得好糟糕)

你可能感兴趣的:(Algorithm)