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