我正在尝试用 Java 编写一个方法来压缩字符串的 ArrayList。例如,如果我们有一个由字符串 ["0", "1", "2", "3"]
组成的 ArrayList,则 ArrayListMethods.condense(["0", "1", "2", "3"])
会将 ArrayList 更改为 ["01", "23"]
。
import java.util.ArrayList;
public class ArrayListMethods
{
public static void condense(ArrayList<String> array){
for (int i = 0; i < array.size(); i++){
array.get(i) += array.get(i + 1);
array.remove(i + 1);
}
}
}
我收到错误,但我不知道为什么。
没关系,问题已解决。我这样重写了代码:
public static void condense(ArrayList<String> array){
for (int i = 0; i < array.size() - 1; i++){
String one = array.get(i);
String two = array.get(i+1);
String both = one+two;
array.set(i, both);
array.remove(i + 1);
}
}
最佳答案
如果您确定元素的数量始终为偶数,您可以执行以下操作:
public static void condense(ArrayList<String> array){
for (int i = 0; i < array.size(); i++){
array.set(i, array.get(i)+array.get(i + 1));
array.remove(i + 1);
}
}
更好的方法是这样的:
public static void condense2(List<String> list){
int groupSize = 2;
List<String> result = new ArrayList<>();
for (int i = 0; i < list.size(); i += groupSize) {
result.add(String.join("", list.subList(i,Math.min(i + groupSize, list.size()))));
}
System.out.println(result);
}
使用第二种方法,您不仅限于连接两个字符串,通过更改 groupSize,您可以从输入中实现类似 ["012", "345", "6"]
的效果["0","1","2","3","4","5","6"]
关于java - 压缩 ArrayList 方法中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58583495/