gpt4 book ai didi

java - IF 条件和循环遍历 ArrayList

转载 作者:行者123 更新时间:2023-12-01 21:50:19 25 4
gpt4 key购买 nike

顶部的方法应该合并 ArrayList 中彼此并排的两个 String 元素。如果 ArrayList 的长度为奇数,则最后一个 String 元素应保持不变。

但问题是,这样程序就可以单独保留第一个 String 元素,而其他元素则可以很好地合并。输出如下所示:

[1, 23, 45, 67, 89]

虽然它必须看起来像这样:

[12, 34, 56, 78, 9]

如何解决这个问题?最好不使用迭代器。

import java.util.ArrayList;


public class Main {

public static ArrayList<String> clump (ArrayList<String> list)
{
for (int i =0; i< list.size(); i++)
//for (int i = list.size()-1; i >=0; i--)
{
// if (i == 0)

if ((list.size() + i) % 2 == 0) {
System.out.println(list);
System.out.println("list size is " + list.size());

String newElement = list.get(i) + list.get(i+ 1);
list.remove(i);
list.remove(i);

list.add(i, newElement);
//System.out.println(list);
}
else {
continue;
}

}
return list;
}

public static void main(String[] args) {

ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");

System.out.println(clump(list));

}
}

最佳答案

如果输入 list 有偶数个元素,您的代码似乎可以正常工作。对于列表中有奇数个元素的情况,请从列表中删除最后一个元素并在运行代码之前暂时保存它。将最后一个元素添加回返回的输出中。

这可能是一种解决方案(可能不是最好的解决方案):

import java.util.ArrayList;


public class Main {

public static ArrayList<String> clump (ArrayList<String> list)
{
// BEGIN CHANGES MADE
String temp = null;
int size = list.size();
if ((size%2) != 0)
{
temp = list.remove(size-1);
}
// END CHANGES MADE
for (int i =0; i< list.size(); i++)
{
if ((list.size() + i) % 2 == 0) {
System.out.println(list);
System.out.println("list size is " + list.size());

String newElement = list.get(i) + list.get(i+ 1);
list.remove(i);
list.remove(i);

list.add(i, newElement);
//System.out.println(list);
}
else {
continue;
}

}
// BEGIN CHANGES MADE
if (temp != null)
{
list.add(temp);
}
// END CHANGES MADE
return list;
}

public static void main(String[] args) {

ArrayList<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
//list.add("0");
System.out.println(clump(list));

}
}

关于java - IF 条件和循环遍历 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com