我已经在这个问题上工作了一段时间,我仍然难过。
我应该编写一个方法口吃,它以ArrayList<String>
作为参数,用每个字符串中的两个替换每个字符串。例如,如果列表在调用方法之前存储值{"how", "are", "you?"}
,则它应该在方法执行完毕后存储值{"how", "how", "are", "are", "you?", "you?"}
。
但是尽管我付出了最大的努力,我仍然无法摆脱我代码中的空元素。
非常感谢任何帮助。
public static ArrayList<String> stutter(ArrayList<String> lst) {
ArrayList<String> list = new ArrayList<String>();
int size = lst.size();
int intSize = lst.size();
int inSize = lst.size();
int size4 = list.size();
if (lst.size() == 0) {
lst.clear();
} else {
for (int x = 0; x < size; x++) {
for (int i = 0; i < 2; i++) {
lst.add(lst.get(x));
}
}
for (int x = 0; x < intSize ; x++) {
lst.set(x,"");
}
for (int x = inSize - 1; x < size; x++) {
String oldInfo = lst.get(x);
list.add(oldInfo);
}
list.removeAll("",null);
}
return list;
}
答案 0 :(得分:4)
尝试这种方法:
public void duplicate(final List<String> inputList) {
final List<String> temp = new ArrayList<>();
inputList.forEach(element -> {
temp.add(element);
temp.add(element);
});
inputList.clear();
inputList.addAll(temp);
}
基本上我在这里做的是:另一个名为temp
的列表用于存储初始列表中的每个元素2次。之后,我只需清理初始列表并添加新内容。
您可以只返回clear
而不是addAll
和temp
- 它包含您需要的数据。但是在这种情况下,不要忘记将方法返回类型从void
更改为List<String>
。
快乐编码:)
答案 1 :(得分:0)
试试这个
public static ArrayList<String> stutter(ArrayList<String> lst) {
ArrayList<String> list = new ArrayList<String>();
if (!lst.isEmpty()) {
for (String string : lst) {
list.add(string);
list.add(string);
}
}
return list;
}
}
这可以做你需要的,它基本上是检查列表,如果不是空的,并复制列表中的字符串
答案 2 :(得分:0)
跟进已经很好的答案,这是我保留原始样本方法签名的例子:
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class Stutter {
public static List<String> stutter(final List<String> words) {
// Create the response array.
List<String> response = new ArrayList<>();
// Check for valid arguments. If not, return empty array of words.
if (words == null || words.size() <= 0) {
return response;
}
// Iterate over the words that were passed in.
for (final String word : words) {
// Add the words twice to the response.
response.add(word);
response.add(word);
}
// The stutter response.
return response;
}
public static void main(final String[] args) {
final String[] myWords = { "hello", "world" };
final List<String> myStutterWords = stutter(new ArrayList<>(Arrays.asList(myWords)));
for (final String s : myStutterWords) {
System.out.println(s);
}
}
}