Java 比较两个数组列表之间的值

Java 比较两个数组列表之间的值,java,arraylist,Java,Arraylist,我在比较不同数组列表中的值时遇到一些问题 根据这些值,我需要比较并找到max n min 这是我的代码: ArrayList<Integer> S1 = new ArrayList<Integer>(5); ArrayList<Integer> S2 = new ArrayList<Integer>(5); ArrayList<Integer> S3 = new ArrayList<Integer&

我在比较不同数组列表中的值时遇到一些问题 根据这些值,我需要比较并找到max n min

这是我的代码:

    ArrayList<Integer> S1 = new ArrayList<Integer>(5);  
    ArrayList<Integer> S2 = new ArrayList<Integer>(5);  
    ArrayList<Integer> S3 = new ArrayList<Integer>(5);  

    S1.add(49);S1.add(68);S1.add(91);S1.add(91);S1.add(12);  
    S2.add(85);S2.add(56);S2.add(62);S2.add(72);S2.add(94);  
    S3.add(76);S3.add(28);S3.add(52);S3.add(96);S3.add(70);
ArrayList S1=新的ArrayList(5);
ArrayList S2=新的ArrayList(5);
ArrayList S3=新的ArrayList(5);
S1.加入(49);S1.加入(68);S1.添加(91);S1.添加(91);S1.加入(12);
S2.加入(85);S2.加入(56);S2.添加(62);S2.加入(72);S2.增加(94);
S3.加入(76);S3.加入(28);S3.加入(52);S3.加入(96);S3.加入(70);

示例:我想比较49、85、76构建一个新列表(在第一个元素的示例列表中)并在那里找到最小/最大值,例如使用Collections类。

构建一个新列表(在第一个元素的示例列表中)并在那里找到最小/最大值,例如使用Collections类。

以下是您可以迭代三个列表的方法:

//TODO for the reader: check that the lists have the same length
for (int i = 0; i < s1.size(); i++) {
  int s1 = S1.get(i);
  int s2 = S2.get(i);
  int s3 = S3.get(i);
  // compare s1, s2 and s3 here...
}
//读卡器的TODO:检查列表是否具有相同的长度
对于(int i=0;i

因为这看起来像是家庭作业,所以我将比较逻辑留给读者作为练习。

以下是您如何迭代三个列表:

//TODO for the reader: check that the lists have the same length
for (int i = 0; i < s1.size(); i++) {
  int s1 = S1.get(i);
  int s2 = S2.get(i);
  int s3 = S3.get(i);
  // compare s1, s2 and s3 here...
}
//读卡器的TODO:检查列表是否具有相同的长度
对于(int i=0;i

由于这看起来像是家庭作业,我将比较逻辑留给读者作为练习。

首先,您可以通过

 ArrayList<Integer> s1 = new ArrayList<Integer>(5);  
 s1.addAll(Arrays.asList(49, 68, 91, 12));
ArrayList s1=新的ArrayList(5);
s1.addAll(Arrays.asList(49,68,91,12));
此外,避免在变量名中使用大写字母,因为它们是为类名保留的

现在,回答你的问题。这可以使用一个简单的循环来完成:

ArrayList<Integer> min = new ArrayList<Integer>(5);  
ArrayList<Integer> max = new ArrayList<Integer>(5);  

// ASSUMPTION: s1, s2 and s3 has the same length, or at least s1.length is the 
// shortest list
for (int i = 0; i < s1.length; i++) {
  max.add(Math.max(Math.max(s1.get(i), s2.get(i)), s3,get(i)));
  min.add(Math.min(Math.min(s1.get(i), s2.get(i)), s3,get(i)));
}
ArrayList min=新的ArrayList(5);
ArrayList max=新的ArrayList(5);
//假设:s1、s2和s3具有相同的长度,或者至少s1。长度是
//最短名单
对于(int i=0;i

您将得到两个数组。每个包含特定索引值的最小值或最大值。我希望这就是您想要的。

首先,您可以通过

 ArrayList<Integer> s1 = new ArrayList<Integer>(5);  
 s1.addAll(Arrays.asList(49, 68, 91, 12));
ArrayList s1=新的ArrayList(5);
s1.addAll(Arrays.asList(49,68,91,12));
此外,避免在变量名中使用大写字母,因为它们是为类名保留的

现在,回答你的问题。这可以使用一个简单的循环来完成:

ArrayList<Integer> min = new ArrayList<Integer>(5);  
ArrayList<Integer> max = new ArrayList<Integer>(5);  

// ASSUMPTION: s1, s2 and s3 has the same length, or at least s1.length is the 
// shortest list
for (int i = 0; i < s1.length; i++) {
  max.add(Math.max(Math.max(s1.get(i), s2.get(i)), s3,get(i)));
  min.add(Math.min(Math.min(s1.get(i), s2.get(i)), s3,get(i)));
}
ArrayList min=新的ArrayList(5);
ArrayList max=新的ArrayList(5);
//假设:s1、s2和s3具有相同的长度,或者至少s1。长度是
//最短名单
对于(int i=0;i

您将得到两个数组。每个包含特定索引值的最小值或最大值。我希望这就是你想要的。

在谷歌上很容易找到,如果是作业,就这样发布。你能更具体一点吗?您想在3个数组中找到max元素,或者查找索引1中的max元素。在Google上很容易找到,如果是它的家庭作业,可以这样发布。您能更具体一些吗?您希望在3个数组中查找max元素,或者查找索引1中有max元素的数组,或者简单地说:
ArrayList s1=new ArrayList(arrays.asList(49,68,91,91,12))
如果列表从未更改,则
list list list=arrays.asList(49,68,91,12)就足够了。这两种情况都很好。我忘了构造器在列清单。很好的建议,安定。是的,我试过了。谢谢。我的错误是我没有使用“.get”或简单的:
ArrayList s1=newarraylist(Arrays.asList(49,68,91,91,12))
如果列表从未更改,那么
list list=Arrays.asList(49,68,91,91,12)就足够了。这两种情况都很好。我忘了构造器在列清单。很好的建议,安定。是的,我试过了。谢谢。我的错误是我没有使用“.get”