我的代碼如下:排序基於在它的特定值的ArrayList與分組
import java.util.ArrayList;
進口java.util.Arrays中; import java.util.List;
公共類排序{
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> theMenu = new ArrayList<String>();
String[] Array1 = {
"M1", "Wine", "2.50",
"M2", "Soft drink", "1.50",
"D1", "Fish", "7.95",
"D2", "Veg chili", "6.70"
};
theMenu.addAll(Arrays.asList(Array1));
String[] temp1 = new String[3];
String[] temp2 = new String[3];
for (int i = 0; i < theMenu.size(); i+=3) {
for (int j = i + 3; j < theMenu.size(); j+=3) {
if (i < theMenu.size() - 3) {
if (theMenu.get(i).compareTo(theMenu.get(i + 3)) > 0) {
temp1[0] = theMenu.get(i);
temp1[1] = theMenu.get(i + 1);
temp1[2] = theMenu.get(i + 2);
temp2[0] = theMenu.get(j);
temp2[1] = theMenu.get(j+1);
temp2[2] = theMenu.get(j+2);
theMenu.remove(j + 2);
theMenu.remove(j + 1);
theMenu.remove(j);
theMenu.remove(i + 2);
theMenu.remove(i + 1);
theMenu.remove(i);
theMenu.add(i, temp2[0]);
theMenu.add(i + 1, temp2[1]);
theMenu.add(i + 2, temp2[2]);
theMenu.add(j, temp1[0]);
theMenu.add(j + 1, temp1[1]);
theMenu.add(j + 2, temp1[2]);
}
}
}
}
System.out.println(theMenu);
}
}
我要排序的順序D1,D2,M1,M2,M3的ArrayList中,同時保持其各自的項目和價格與IDS。我不允許更改存儲方法,即使用自己的ID和名稱以及價格創建另一類物品。我怎樣才能重新排列它,以便它的形式:
{"D1" , "Fish", "7.95"
"D2" , "Veg chili", "6.70",
"M1" , "Wine", "2.50",
"M2", "Soft drink", "1.50"
}
在ArrayList中。無論我們在arrayList中存儲多少個項目,這應該工作。我的代碼產生以下輸出:
[M1, Wine, 2.50, M2, Soft drink, 1.50, D1, Fish, 7.95, D2, Veg chili, 6.70]
注:忘記陣列中的新生產線,我只需要索引整理出來。誰能幫我這個?
問題描述是如此怪異,它要麼做作業或面試問題。儘管如此,選擇自己喜歡的排序算法並不需要很難,只需用三元組對待數組列表即可。 – Kayaman