2011-12-16 84 views
0

我有一些問題比較來自不同數組列表 值從這個值,我需要比較,找到最大n分鐘比較值

這裏是我的編碼:

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); 

示例:我想比較49,85,76

+3

Is this Homework? – bezmax 2011-12-16 08:48:05

+0

在Google上輕鬆提供,如果其作業,發佈等。 – Lion 2011-12-16 08:51:24

回答

0

首先,你可以在列表中很容易被

ArrayList<Integer> s1 = new ArrayList<Integer>(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))); 
} 

你最終會得到兩個數組。每個包含特定索引值的最小值或最大值。我希望這是你想要的。

1

構建一個新列表(在您的第一個元素的示例列表中),並找到最小/最大值,例如使用Collections類。

2

這裏是你如何可以遍歷三個列表:

//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... 
} 

因爲這看起來像功課,我離開的比較邏輯作爲練習留給讀者。