有20个元素不想O(n)的复杂度去查,想O(4),我这个代码中为什么对想查找的数去模后为什么可以得到list的索引?
import java.util.ArrayList;
import java.util.List;
public class Math {
public static void main(String[] args) {
int[] i1 = new int[]{1,2,3,4};
int[] i2 = new int[]{5,6,7,8};
int[] i3 = new int[]{9,10,11,12};
int[] i4 = new int[]{13,14,15,16};
int[] i5 = new int[]{17,18,19,20};
List<int[]> l = new ArrayList<>();
l.add(i1);
l.add(i2);
l.add(i3);
l.add(i4);
l.add(i5);
int i = 12;
int i6 = java.lang.Math.abs(Integer.hashCode(i));
int i7 = i6 % 5;
System.err.println(i7);
int[] ints = l.get(i7);
for (int i8 = 0; i8 < ints.length; i8++) {
if (ints[i8]==i)
System.err.println(i8);
}
}
}