古詩詞大全網 - 個性簽名 - java問題,求壹個比較簡單合理的算法。在線等~

java問題,求壹個比較簡單合理的算法。在線等~

編輯了半天又不顯示了 靠.ssssss

public?static?void?main(String[]?args){

//構造數據

List<Data>?list?=?new?ArrayList<Data>();

list.add(new?Data("三國誌12",?"03-01",?"5"));

list.add(new?Data("雷霆戰機",?"03-01",?"2"));

list.add(new?Data("真三國無雙7",?"03-02",?"4"));

list.add(new?Data("三國誌12",?"03-03",?"5"));

list.add(new?Data("雷霆戰機",?"03-04",?"5"));

list.add(new?Data("真三國無雙7",?"03-05",?"5"));

String[][]?tableData?=?toTable(list);

if?(log.isDebugEnabled()){

log.debug(JsonUtil.format(tableData));

}

}

/**

*?將?config裝成?二維數組?table.

*

*?@param?list

*the?list

*?@param?nameComparator

*the?name?comparator

*?@param?keyComparator

*the?key?comparator

*?@return?the?string[][]

*/

private?static?String[][]?toTable(List<Data>?list){

//這個問題的核心,是通過name和key?取到?value值

//因此,為了性能,設計壹個map,這個map的key?是config的name和key拼接起來的

Map<String,?Data>?map?=?new?LinkedHashMap<String,?Data>();

//LinkedHashSet?保證循環的順序

Set<String>?nameSet?=?new?LinkedHashSet<String>();

Set<String>?keySet?=?new?LinkedHashSet<String>();

for?(Data?config?:?list){

String?key?=?config.getKey();

String?name?=?config.getName();

nameSet.add(name);

keySet.add(key);

//確保map中的key不會重復

String?k?=?key?+?"@"?+?name;

map.put(k,?config);

}

int?rowLength?=?list.size();

int?columnLength?=?nameSet.size()?+?1;

String[][]?table?=?new?String[rowLength][columnLength];

//第壹行?放name?標題

table[0]?=?CollectionsUtil.toArray(nameSet);

int?i?=?0;

for?(String?key?:?keySet){

String[]?array?=?new?String[columnLength];

array[0]?=?key;

int?j?=?0;

for?(String?name?:?nameSet){

String?k?=?key?+?"@"?+?name;

Data?config?=?map.get(k);

String?value?=?null;

if?(null?!=?config){

value?=?config.getValue();

}

array[j?+?1]?=?value;

j++;

}

table[i?+?1]?=?array;

i++;

}

return?table;

}

13:34:00?DEBUG?(CopyOfDataTest.java:90)?[main()]?[

[

"三國誌12",

"雷霆戰機",

"真三國無雙7"

],

[

"03-01",

"5",

"2",

null

],

[

"03-02",

null,

null,

"4"

],

[

"03-03",

"5",

null,

null

],

[

"03-04",

null,

"5",

null

],

[

"03-05",

null,

null,

"5"

]

]