Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何同时遍历两个ArrayList并生成一个;“夫妇”;什么是物体?_Java_Arraylist - Fatal编程技术网

Java 如何同时遍历两个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

我一直在玩泛型,代码中有一个小问题。我的问题是如何同时迭代两个ArrayList(无需使用
迭代器
),同时通过在方法
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
的实例。(或者,可能是工厂或建筑商)。