有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);
        }
    }
}
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!