實施例:在HashMap.(map.put(0,"zero")
等排序基於英文名稱一個整數陣列
Input: { 1,22,44,3456,9999}
Output {44,9999,3456,22}
我所做的是把整數,字符串值..)
使用上述的HashMap
創建新的字符串數組String Array{ one,twotwo,fourfour,threefourfivesix,ninenineninenine}
記得輸入的索引字符串數組
排序字符串數組,然後用HashMap替換整數字符串值。
有沒有其他更好的方法來做到這一點?
package l337;
import java.util.Arrays;
import java.util.HashMap;
public class temp{
public static void main(String[] arg){
HashMap<Integer,String> map = new HashMap<Integer,String>();
map.put(0,"zero");
map.put(1,"one");
map.put(2,"two");
map.put(3,"three");
map.put(4,"four");
map.put(5,"five");
map.put(6,"six");
map.put(7,"seven");
map.put(8,"eight");
map.put(9,"nine");
int[] input ={1,2,44,66,7895,88983};
String[] stringArray = new String[input.length];
for(int i=0;i<input.length;i++){
stringArray[i] = map.get(input[i]);
if(stringArray[i]==null){
char[] temp= (new Integer(input[i])).toString().toCharArray();
for(int j=0;j<temp.length;j++){
stringArray[i]+=map.get((int)temp[j]-48);
}
}
}
HashMap<String,Integer> maploc = new HashMap<String,Integer>();
map.put(0,"zero");
for(int i=0;i<input.length;i++){
maploc.put(stringArray[i], input[i]);
}
Arrays.sort(stringArray);
int[] output =new int[input.length];
for(int i=0;i<input.length;i++){
output[i]= maploc.get(stringArray[i]);
}
for(int i:input){
System.out.print(i+" ");
}
System.out.println();
for(int i:output){
System.out.print(i+" ");
}
}
}
什麼編碼到nw? – Kick
您可能需要更清楚地說明map.put(0,「zero」)等中「etc」的含義,因爲我假定您沒有硬編碼10000個值。 – Dukeling
順便說一句,你的地圖應該用另一種方式構建:'map.put(「zero」,0)'。 –