What's the tersest way to declare a list/array literal in Java, both at point of declaration and point of use?
As a secondary concern, I'd prefer a method that doesn't cause a compile-time warnings or require warnings to be suppressed.
Note: Personally this is for Java 8ish on Android, incase that changes the answers.
I've tried:
    // error: generic array creation
    Pair<Integer, String>[] data4 = new Pair<Integer, String>[] {
            new Pair<Integer, String>(0, "00000000"),
            new Pair<Integer, String>(1, "00000001"),
            new Pair<Integer, String>(127, "11111111"),
            new Pair<Integer, String>(128, "10000000")
    };
    // warning: unchecked assignment
    Pair<Integer, String>[] data4 = new Pair[] {
            new Pair<Integer, String>(0, "00000000"),
            new Pair<Integer, String>(1, "00000001"),
            new Pair<Integer, String>(127, "11111111"),
            new Pair<Integer, String>(128, "10000000")
    };
    for (Pair<Integer, String> x : data4) {
    }
    Pair[] data5 = new Pair[] {
            new Pair<Integer, String>(0, "00000000"),
            new Pair<Integer, String>(1, "00000001"),
            new Pair<Integer, String>(127, "11111111"),
            new Pair<Integer, String>(128, "10000000")
    };
    // warning: unchecked assignment
    for (Pair<Integer, String> x : data5) {
    }
    for (Pair x : data5) {
        //warning: unchecked assignment
        Pair<Integer, String> y = x;
    }
    // warning: unchecked generics array creation for vargs parameter
    List<Pair<Integer, String>> data = Arrays.asList(
            new Pair<Integer, String>(0, "00000000"),
            new Pair<Integer, String>(1, "00000001"),
            new Pair<Integer, String>(127, "11111111"),
            new Pair<Integer, String>(128, "10000000")
    );
    for (Pair<Integer, String> x : data) {
    }
    List<Pair> data2 = Arrays.asList(
            (Pair) new Pair<Integer, String>(0, "00000000"),
            (Pair) new Pair<Integer, String>(1, "00000001"),
            (Pair) new Pair<Integer, String>(127, "11111111"),
            (Pair) new Pair<Integer, String>(128, "10000000")
    );
    // warning: unchecked assignment
    for (Pair<Integer, String> x : data2) {
    }
    for (Pair x : data2) {
        // warning: unchecked assignment
        Pair<Integer, String> y = x;
    }
 
     
    