-1

我正在使用 LinkedHashMap 从 excel 文件中读取数据并将它们存储在 mysql 中的表中!如何对 LinkedHashMap 进行排序以存储具有降序 ID 的数据?这是我的excel文件的一个例子:

ID 姓名 薪水
50 christine 2349000
43 paulina 1245874
54 laura 4587894

下面的代码用于将excel文件的数据存储在表格中!

private static LinkedHashMap[] parseExcelColumnData(List sheetData) {

            LinkedHashMap[] tousRows = new LinkedHashMap[sheetData.size() - 1];
            for (int rowCounter = 1; rowCounter < sheetData.size(); rowCounter++) {

                List list = (List) sheetData.get(rowCounter);

                LinkedHashMap<String, Integer> tableFields = new LinkedHashMap(list.size());
                String str;
                String[] tousFields = new String[list.size()];
                int i = 0;

                for (int j = 0; j < list.size(); j++) {
                    Cell cell = (Cell) list.get(j);
                    if (cell != null) {
                        if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                            tableFields.put(String.valueOf(cell
                                    .getNumericCellValue()), cell.getCellType());
                        } else if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                            tableFields.put(cell.getStringCellValue(), cell
                                    .getCellType());
                        } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
                            tableFields.put(String.valueOf(cell
                                    .getBooleanCellValue()), cell.getCellType());
                        }
                    }

                }
                tousRows[rowCounter - 1] = tableFields;
            }

            return tousRows;

        }
4

1 回答 1

1

根据文档,LinkedHashMap“通常”按添加到地图的顺序存储键,因此您无法真正更改顺序。

您可以做的是提取所有键并对其进行排序,例如:

LinkedHashMap<Integer, String> map = new LinkedHashMap <Integer, String>();
/* add elements here */
Set<Integer> keys = new TreeSet<Integer>();
keys.addAll(map.keySet());

Set<Integer> keys现在包含按排序顺序排列的所有映射键,因为 TreeSet 基于其自然顺序存储元素

于 2013-04-29T13:05:42.717 回答