Java 如何同时遍历两个ArrayList并生成一个;“夫妇”;什么是物体?
我一直在玩泛型,代码中有一个小问题。我的问题是如何同时迭代两个ArrayList(无需使用Java 如何同时遍历两个ArrayList并生成一个;“夫妇”;什么是物体?,java,arraylist,Java,Arraylist,我一直在玩泛型,代码中有一个小问题。我的问题是如何同时迭代两个ArrayList(无需使用迭代器),同时通过在方法combine()中从这两个ArrayList获取对象来实现“耦合”?我已经对代码中的示例以及输出的外观进行了注释 import java.util.*; public class Answer { public static void main(String[] args) { test_combine(); } public st
迭代器
),同时通过在方法combine()
中从这两个ArrayList获取对象来实现“耦合”?我已经对代码中的示例以及输出的外观进行了注释
import java.util.*;
public class Answer {
public static void main(String[] args)
{
test_combine();
}
public static void test_combine(){
System.out.println("TESTING COMBINE");
ArrayList<String> theStrings = new ArrayList<String>(Arrays.asList(new String[]{"Hi","wow","Nuts"}));
// [Hi, wow, Nuts]
ArrayList<Integer> theInts = new ArrayList<Integer>(Arrays.asList(new Integer[]{15, -4, 42}));
// [15, -4, 42]
ArrayList<Pair2<String,Integer>> stringInts = combine(theStrings,theInts);
System.out.println(stringInts);
// [(Hi,15), (wow,-4), (Nuts,42)]
ArrayList<Double> theDoubs = new ArrayList<Double>(Arrays.asList(new Double[]{1.23, 42.1, 99.0, -2.1}));
// [1.23, 42.1, 99.0, -2.1]
ArrayList<Character> theChars = new ArrayList<Character>(Arrays.asList(new Character[]{'Z','a','!','?'}));
// [Z, a, !, ?]
ArrayList<Pair2<Double,Character>> doubChars = combine(theDoubs, theChars);
System.out.println(doubChars);
// [(1.23, Z), (42.1, a), (99.0, !), (-2.1, ?)]
}
public static <X,Y>ArrayList<Pair2<X,Y>> combine(ArrayList<X> xs, ArrayList<Y> ys)
{
ArrayList<Pair2<X,Y>> newValues = new ArrayList<>();
for(int i = 0; i < xs.size() && i < ys.size(); i++)
{
newValues.add(xs.get(i), ys.get(i));
}
}
}
import java.util.*;
公开课答案{
公共静态void main(字符串[]args)
{
测试联合收割机();
}
公共静态空隙试验(联合试验){
System.out.println(“测试联合收割机”);
ArrayList theStrings=newarraylist(Arrays.asList(新字符串[]{“Hi”,“wow”,“Nuts”}));
//[嗨,哇,胡说八道]
ArrayList theInts=新的ArrayList(Arrays.asList(新整数[]{15,-4,42}));
// [15, -4, 42]
ArrayList stringInts=组合(字符串、字符串);
System.out.println(stringInts);
//[(嗨,15),(哇,-4),(坚果,42)]
ArrayList theDoubs=newArrayList(Arrays.asList(newdouble[]{1.23,42.1,99.0,-2.1}));
// [1.23, 42.1, 99.0, -2.1]
ArrayList theChars=新的ArrayList(Arrays.asList(新字符[]{'Z','a','!','?'));
//[Z,a,!,?]
ArrayList doubChars=联合收割机(双刀,双刀);
System.out.println(doubChars);
//[(1.23,Z),(42.1,a),(99.0,!),(-2.1,)]
}
公共静态ArrayList组合(ArrayList xs、ArrayList ys)
{
ArrayList newValues=新的ArrayList();
对于(int i=0;i
根据您发布的代码
newValues.add(xs.get(i), ys.get(i));
应该是
newValues.add(new Pair2(xs.get(i), ys.get(i)));
假设您的
Pair2
有一个构造函数,可以取X,Y
什么是Pair2??您需要编写newValues.add(newpair2(xs.get(i),ys.get(i))代码>能否请您解释一下为什么包含新的Pair2??我很感激它,因为newValues
是一个ArrayList
。。。。所有可以添加到它的是类的实例Pair2
。您可以使用new Pair2
创建类Pair2
的实例。(或者,可能是工厂或建筑商)。