从列表创建字母表列表:Java

从列表创建字母表列表:Java,java,list,numbers,alphabetical,Java,List,Numbers,Alphabetical,我有一个列表,其中包含来自给定路径的文件名 fileNamesList 从这个列表中,我想创建一个字母表列表,比如如果有文件名以a开头,然后在列表中添加a,直到Z,同样的,我想创建一个从0到9的数字列表 所有这些字母和数字检查都基于从文件名开始 如何在java中实现这一点 最后,字母列表将像一个beef…Z和数字列表将是1 2 3 9 谢谢您可以使用HashMap用字符键存储列表。这可以用于数字和字母的相同用途,但如果出于某种原因希望它们分开,则可以创建两个地图 private HashMap

我有一个列表,其中包含来自给定路径的文件名

fileNamesList
从这个列表中,我想创建一个字母表列表,比如如果有文件名以a开头,然后在列表中添加a,直到Z,同样的,我想创建一个从0到9的数字列表

所有这些字母和数字检查都基于
从文件名开始

如何在java中实现这一点

最后,
字母列表将像一个beef…Z
数字列表将是1 2 3 9


谢谢

您可以使用
HashMap
用字符键存储列表。这可以用于数字和字母的相同用途,但如果出于某种原因希望它们分开,则可以创建两个地图

private HashMap<Character, List<String>> alphabetList = new HashMap<>();

public void addFileName(String fileName) {
    if(fileName.isEmpty()) {
        return;
    }

    Character firstChar = Character.toUpperCase(fileName.charAt(0));

    List<String> storedList = alphabetList.get(firstChar);
    if(storedList == null) {
        storedList = new ArrayList<String>();
        alphabetList.put(firstChar, storedList);
    }
    storedList.add(fileName);
}
private HashMap alphabetList=new HashMap();
public void addFileName(字符串文件名){
if(fileName.isEmpty()){
返回;
}
Character firstChar=Character.toUpperCase(fileName.charAt(0));
List-storedList=alphabetList.get(firstChar);
if(storedList==null){
storedList=新的ArrayList();
alphabetList.put(firstChar,storedList);
}
添加(文件名);
}

您可以使用
HashMap
用字符键存储列表。这可以用于数字和字母的相同用途,但如果出于某种原因希望它们分开,则可以创建两个地图

private HashMap<Character, List<String>> alphabetList = new HashMap<>();

public void addFileName(String fileName) {
    if(fileName.isEmpty()) {
        return;
    }

    Character firstChar = Character.toUpperCase(fileName.charAt(0));

    List<String> storedList = alphabetList.get(firstChar);
    if(storedList == null) {
        storedList = new ArrayList<String>();
        alphabetList.put(firstChar, storedList);
    }
    storedList.add(fileName);
}
private HashMap alphabetList=new HashMap();
public void addFileName(字符串文件名){
if(fileName.isEmpty()){
返回;
}
Character firstChar=Character.toUpperCase(fileName.charAt(0));
List-storedList=alphabetList.get(firstChar);
if(storedList==null){
storedList=新的ArrayList();
alphabetList.put(firstChar,storedList);
}
添加(文件名);
}

初始化后
字母列表

for (int i = 'A'; i <= 'Z'; i++)
    for (fileName: fileNameList) {
        if ((int)fileName.charAt(0) == i) {
            AlphabetList.add((char)i);
        }
    }
}

初始化字母列表后

for (int i = 'A'; i <= 'Z'; i++)
    for (fileName: fileNameList) {
        if ((int)fileName.charAt(0) == i) {
            AlphabetList.add((char)i);
        }
    }
}

同样,您也可以为数字添加逻辑

    List alphabetList = new ArrayList();
    int alpha = (int)fileNameList.charAt(0);

    while(alpha <= 90){
        alphabetList.add((char)alpha);
        alpha++;
    }
List alphabetList=newarraylist();
int alpha=(int)fileNameList.charAt(0);

而(alpha类似地,您也可以为数字添加逻辑

    List alphabetList = new ArrayList();
    int alpha = (int)fileNameList.charAt(0);

    while(alpha <= 90){
        alphabetList.add((char)alpha);
        alpha++;
    }
List alphabetList=newarraylist();
int alpha=(int)fileNameList.charAt(0);

虽然(alpha)很好,谢谢。它给了我我想要的,谢谢它工作了。有没有更好的方法来代替内环?像递归一样很好,谢谢。它给了我我想要的,谢谢它工作了。有没有更好的方法来代替内环?像递归一样