0

我在面试时问了一个问题,假设有一个名为 A 的 4 个元素的数组列表,其值为 67,34,56,78 所以创建另一个名为 B 的数组列表,它由 2 个元素组成,以这样的方式开发程序,以便首先应将先前数组列表 A 的三个元素插入到数组列表 B 中,如下所示。

Arraylist A  ---> 67,34,56,78 (having size of 4)
Arraylist B   ----> 67,34,56(shoud be stored in very first element of array list itself) and 56 in next element (so total size is of arraylist B is 2)

并且采访者还补充说,这一次被告知arraylist A在开始时最初将有4个元素,但是制作另一个通用类型的程序意味着它永远不会被告知最初列表中有多少元素,但是你必须始终创建另一个列表,并且始终从源列表中选择前三个元素,然后将另一个列表放入第一个元素本身的内部,并将源列表的剩余一个元素作为第二个列表中的下一个元素。

请告知如何实现这一点以及如何选择这对 3 个元素并将其添加到目标列表中。

4

2 回答 2

0

这可能更简单

public class SO {

    public static void main(String[] args) throws IOException,
            InterruptedException {
        ArrayList<Integer> a = Lists.newArrayList(67, 34, 56, 78);
        ArrayList<Integer> b = Lists.newArrayList();
        b.addAll(a.subList(0, 3));
        System.out.println(b);

    }
}

给予

[67, 34, 56]
于 2013-03-01T08:11:39.883 回答
0

在这里它以最简单的方式..你可以让它更高效:

    final List<String> first = new ArrayList<String>() {
        {
            add("67");
            add("34");
            add("56");
            add("78");
        }
    };

    final List<Object> second = new ArrayList<Object>();

    // add first 3 elements to the second
    final List<String> temp = new ArrayList<String>();
    for(int i=0; i<3; i++) {
        temp.add(first.get(i));
    }

    second.add(temp);
    second.add(first.get(3));
于 2013-03-01T03:47:17.863 回答