我有一組存儲在Map/HashMap中的值。然後我做了一個三重循環來比較這些值。值的比較方法如下:首先獲取0-1的值,然後將其與1-x [1-2,1-3,... 1-n]開始的一組值相比較。 IF和ONLY如果(例如0-1)的值大於1-x設定值(例如:1-2,1-3,... 1-n)中的所有其他值,則IF-ELSE聲明將觸發一個事件。無法獲取循環來檢查通過循環傳遞的一組值是否大於某個值
的數據的一個示例在下面的代碼段中給出:
import java.util.HashMap;
import java.util.Map;
public class CompareSequence{
public static void main(String[] args)
{
Map<String, Integer> myMap = new HashMap<String, Integer>();
myMap.put("0-1", 33);
myMap.put("0-2", 29);
myMap.put("0-3", 14);
myMap.put("0-4", 8);
myMap.put("1-2", 37);
myMap.put("1-3", 45);
myMap.put("1-4", 17);
myMap.put("2-3", 1);
myMap.put("2-4", 16);
myMap.put("3-4", 18);
for(int i = 0; i < 5; i++)
{
for(int j = i+1; j < 5; j++)
{
String testLine = i+"-"+j;
int itemA = myMap.get(testLine);
for(int k = j+1; k < 5; k++)
{
String newLine = j+"-"+k;
int itemB = myMap.get(newLine);
if(itemA > itemB)
{
//IF and ONLY all values of item A that is passed through is bigger than item B
//THEN trigger an event to group item B with A
System.out.println("Item A : " + itemA + " is bigger than item "
+ newLine + " (" +itemB + ")"); // Printing out results to check the loop
}
else
{
System.out.println("Comparison failed: Item " + itemA + " is smaller than " + newLine + " (" + itemB + ")");
}
}
}
}
}
}
Current Result:
Get main value for comparison: myMap.get(0-1) = 33
Get all values related to Key 1-x (set value) ..
myMap.get(1-2) = 37 // This value is bigger than myMap.get(0-1) = 33
myMap.get(1-3) = 45 // This value is bigger than myMap.get(0-1) = 33
myMap.get(1-4) = 17 // This value is smaller than myMap.get(0-1) = 33
在給定的該示例中,IF-ELSE語句不應讓它通過,只有當所有比33小,應該一事件被觸發。我應該對IF-ELSE語句做些不同的事情,或者我的循環有問題嗎?
Desired Result:
If((myMap.get(0-1) > myMap.get(1-2)) && (myMap.get(0-1) > myMap.get(1-3)) && (myMap.get(0-1) > myMap.get(1-4))...(myMap.get(0-1) > myMap.get(1-n))
{
//Trigger event to group all set values 1-x to value key 0-1
//Then delete all set valued related to 1-x from list
}
任何意見或幫助將不勝感激。謝謝!
建議你需要對你的期望VS您實際看到的更清楚一點。 – John3136
嗨,約翰,我的問題是獲取if-else語句來檢查所需條件部分中顯示的所有條件。由於只有三個值,所以我可以使用這種方法,但是如果有10個以上的數據比較,這是不可能的。 – Cryssie