需要帮助找出如何编写多维数组以按字母存储名称

时间:2015-02-07 03:01:10

标签: java arrays

我目前正在开发一个包含许多不同组件的项目,但其中一个组件真的让我很难过。我必须使用存储名称列表的多维数组。名称已经在单维数组中,并按字母顺序排序。对于multidimentioal数组,我需要在第一个集合中存储以A开头的所有名称,在第二个集合中存储以B开头的所有名称,依此类推。我知道我可以使用charachters的ASCII值来跟踪第一个位置,方法是从名字第一个位置的字母值中减去65,并将数字[i]设置为等于i但是我没有&#39 ; t之后真的知道如何存储名称。毋庸置疑,我真的很困惑,甚至不能说出我需要的是什么。任何帮助都表示赞赏我还没有编写任何代码,因为我不知道该写些什么

1 个答案:

答案 0 :(得分:0)

我会使用ArrayList作为数组的第二维。这样你就可以任意添加任意数量的字符串。这是一个给你一些想法的例子

    ArrayList<String>[] nameList = new ArrayList[25];
    for(int i =0; i < nameList.length; i++){
        nameList[i] = new ArrayList<String>();
    }
    String[] names = {"Ali","Joe","Sue","Jane"};
    for(int i = 0; i < names.length;i++){
        int firstLetterCharacterCode = names[i].charAt(0) - 65;
        nameList[firstLetterCharacterCode].add(names[i]);
    }

    for(int i =0; i < nameList.length;i++){
        for(String name : nameList[i]){
            System.out.println(name);
        }
    }

如果您感觉大胆,可以查看maps。它可以使访问一组特定的名单更加优雅,因为你可以使用密钥的字母。