重复数组中的序列

时间:2013-10-05 04:33:48

标签: java loops arraylist

在这个问题中,我要编写一个接受ArrayList stringsinteger的方法。在这种情况下,整数将重复单个字多次,如整数所示。例如,如果列表在调用方法之前存储值["how", "are", "you?"]且k为4,则应存储值["how", "how", "how", "how", "are", "are", "are", "are", "you?", "you?", "you?", "you?"]如果k为0或为负,则在调用后列表应为空。

public static void stutter(ArrayList<String> thing, int k) {
    if (k <= 0) {
        thing.clear(); // if k is 0
        return;
    }

    for (int i = 0; i< thing.size(); i+= k) {
        String temp = thing.get(i);
        for (int j = 0; j < k; j++) {
            thing.add(temp);
        }
    }
}

3 个答案:

答案 0 :(得分:0)

没关系,我解决了;只是一些重新安排,它工作。

答案 1 :(得分:0)

我还没有测试过,请验证

 public static void stutter(ArrayList<String> thing, int k) {
    if (k <= 0) {
        thing.clear(); // if k is 0
        return;
    }

    ArrayList<String> newList = new ArrayList<>();
    for (int i = 0; i< thing.size(); i++) {
        String temp = thing.get(i);
        for (int j = 0; j < k; j++) {
            newList.add(temp);
        }
    }
    thing.clear();
    thing.addAll(newList);
}

答案 2 :(得分:0)

没关系,我解决了;只是一些重新安排,它工作。

public static void stutter(ArrayList<String> thing, int k) {
    if (k <= 0) {
        thing.clear();
        return;
    }
    for (int i = 0; i< thing.size(); i+= k) {
        String temp = thing.get(i);
        for (int j = 1; j < k; j++) {
            thing.add(i, thing.get(i));
        }

        if (i == thing.size()) {
            return;
        }
    }
}

如果你们可以找到任何漏洞,请随时指出它们。