Java 合并两个数组列表
我必须将两个arraylist交织成一个arraylist,但我似乎无法解决这个问题。当列表1的大小更大或列表2的大小更大时,代码应该可以工作 我还没有学习任何未包含在下面代码中的方法或术语 非常感谢您的帮助。非常感谢。以下是我到目前为止的情况:Java 合并两个数组列表,java,arraylist,Java,Arraylist,我必须将两个arraylist交织成一个arraylist,但我似乎无法解决这个问题。当列表1的大小更大或列表2的大小更大时,代码应该可以工作 我还没有学习任何未包含在下面代码中的方法或术语 非常感谢您的帮助。非常感谢。以下是我到目前为止的情况: public static void interLeave(ArrayList<String> list1, ArrayList<String> list2) { ArrayList<String> te
public static void interLeave(ArrayList<String> list1, ArrayList<String> list2)
{
ArrayList<String> tempList = new ArrayList<>();
int count = 1;
int length = list1.size() + list2.size();
String temp1 = "";
String temp2 = "";
boolean test = true;
if (list1.size() >= list2.size())
{
for (int j = 0; j<length; j++)
{
for (int i = 0; i < length ; i++)
{
tempList.add(2*i, list1.get(i));
tempList.add(2*i+1, list2.get(i));
count++;
if (count == list2.size())
{
break;
}
}
}
list1.clear();
list1.addAll(tempList);
}
else
{
for (int i = 0; i<length; i++)
{
list1.add(2*i+1, list2.get(i));
count++;
if (count == list1.size())
{
break;
}
}
}
public static void main(String[] args)
{
ArrayList list1 = new ArrayList();
list1.add(2);
list1.add(3);
list1.add(7);
ArrayList list2 = new ArrayList();
list2.add("Hi?");
list2.add("name");
list2.add("mallory");
list2.add("nice");
ArrayList list3 = new ArrayList();
list3.add("my");
list3.add("is");
list3.add("pizzazz");
interLeave(list2, list3);
System.out.print(list2);
publicstaticvoidinterleave(arraylistlist1,arraylistlist2)
{
ArrayList tempList=新的ArrayList();
整数计数=1;
int length=list1.size()+list2.size();
字符串temp1=“”;
字符串temp2=“”;
布尔检验=真;
如果(list1.size()>=list2.size())
{
对于(intj=0;j试试这个
import java.util.ArrayList;
public class Test{
public static void interLeave(ArrayList<String> list1,
ArrayList<String> list2) {
ArrayList<String> tempList = new ArrayList<>();
int count = 1;
int length = list1.size() + list2.size();
String temp1 = "";
String temp2 = "";
boolean test = true;
if (list1.size() >= list2.size()) {
for (int j = 0; j < list2.size(); j++) {
for (int i = 0; i < list2.size(); i++) {
tempList.add(2 * i, list1.get(i));
tempList.add(2 * i + 1, list2.get(i));
count++;
if (count == list2.size()) {
break;
}
}
}
list1.clear();
list1.addAll(tempList);
} else {
for (int i = 0; i < length; i++) {
list1.add(2 * i + 1, list2.get(i));
count++;
if (count == list1.size()) {
break;
}
}
}
}
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
list1.add(2);
list1.add(3);
list1.add(7);
ArrayList list2 = new ArrayList();
list2.add("Hi?");
list2.add("name");
list2.add("irene");
list2.add("nice");
ArrayList list3 = new ArrayList();
list3.add("my");
list3.add("is");
list3.add("Lee");
interLeave(list2, list3);
System.out.print(list2);
}
}
(简化一下)怎么样
publicstaticvoidinterleave(arraylistlist1,arraylistlist2)
{
ArrayList tempList=新的ArrayList();
int length=Math.max(list1.size(),list2.size());
对于(int j=0;j1个以上溶液
public static void interLeave(ArrayList<String> list1, ArrayList<String> list2)
publicstaticvoidinterleave(arraylistlist1,arraylistlist2)
{
ArrayList tempList=new ArrayList();
迭代器迭代器1=list1.Iterator();
迭代器迭代器2=list2.Iterator();
while(Iterator1.hasNext()&&Iterator2.hasNext())
{
add(Iterator1.next());
add(Iterator2.next());
}
while(Iterator1.hasNext()){
add(Iterator1.next());
}
while(Iterator2.hasNext()){
add(Iterator2.next());
}
清单1.clear();
列表1.addAll(圣殿骑士);
}问题出在哪里?错误是什么?我认为您遇到了越界异常。输出看起来不太正确,是吗?输出应该是什么样子,抱歉,我刚刚删除了发生的错误并发布了
public static void interLeave(ArrayList<String> list1, ArrayList<String> list2)
{
ArrayList<String> tempList = new ArrayList<String>();
int length = Math.max(list1.size(), list2.size());
for (int j = 0; j<length; j++)
{
if (j < list1.size()) {
tempList.add(2*j, list1.get(j));
}
if (j < list2.size()) {
tempList.add(2*j+1, list2.get(j));
}
}
list1.clear();
list1.addAll(tempList);
}
public static void interLeave(ArrayList<String> list1, ArrayList<String> list2)
ArrayList<String> tempList = new ArrayList<>();
Iterator<String> Iterator1 = list1.iterator();
Iterator<String> Iterator2 = list2.iterator();
while (Iterator1.hasNext() && Iterator2.hasNext())
{
tempList.add(Iterator1.next());
tempList.add(Iterator2.next());
}
while (Iterator1.hasNext()){
tempList.add(Iterator1.next());
}
while (Iterator2.hasNext()){
tempList.add(Iterator2.next());
}
list1.clear();
list1.addAll(tempList);