记得龙哥有个重构的文章里说直接判断啥的。
今天看JDK ArrayList,看到了他的 indexOf,他先判断,后进入循环,看似写了两遍for 循环,但是简单明了暴力。i like it .
public class Test { public static void main(String[] args) { } Object[] elementData; private int size; public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++){ if (elementData[i]==null){ return i; } } } else { for (int i = 0; i < size; i++){ if (o.equals(elementData[i])){ return i; } } } return -1; } public int indexOf1(Object o){ for (int i = 0; i < size; i++){ if(o==null){ if (elementData[i]==null){ return i; } }else{ if(o.equals(elementData[i])){ return i; } } } return -1; } }