Java访问地图中的列表
在分析csv文件时,我添加了每个列,然后将每个列添加到列表中,然后将每个列表添加到Java访问地图中的列表,java,csv,Java,Csv,在分析csv文件时,我添加了每个列,然后将每个列添加到列表中,然后将每个列表添加到映射中。在每个映射中,键是列表的第一行 CSVReader reader = new CSVReader(new FileReader("plik.csv"),';'); CSVReader ile = new CSVReader(new FileReader("plik.csv"),';'); int columnCount=0; String[]
映射中。在每个映射中,键是列表的第一行
CSVReader reader = new CSVReader(new FileReader("plik.csv"),';');
CSVReader ile = new CSVReader(new FileReader("plik.csv"),';');
int columnCount=0;
String[] header = ile.readNext(); // assuming first read
if (header != null) { // and there is a (header) line
columnCount = header.length; // get the column count
}
HashMap<String, List<String>> map = new HashMap<String, List<String>>();
List content = reader.readAll();
String[] row;
String key;
int column=0;
for(int i=0; i <columnCount-1; i++) {
List<String> lista = new ArrayList<String>();
key=null;
for (Object object : content) {
row = (String[]) object;
if (column== 0) {
key = row[i];
}
if (kolumna != 0) {
lista.add(row[i]);
map.put(key, lista);
}
kolumna++;
}
kolumna=0;
}
但结果是每个列表都显示在szytwno的每一行中。我无法访问列表中我想将其放入下拉列表的各个项目,例如
输出:
Datum - [07.10.2014, 07.10.2014, 07.10.2014]
ProzessID - [1180804, 1180804, 335605]
键:Datum
,ProzessID
尝试使用map.entrySet()代替:
for(条目:map.entrySet())
{
System.out.println(entry.getKey()+“:”);
对于(字符串s:entry.getValue()){
系统输出打印项次;
}
}
这已经尝试过了。数据以相同的方式显示。我想列出一些项目,它们一个接一个地显示,并且没有被、
和隔开[
。也许我需要在循环中进行循环?这样我可以控制同一列表的迭代。他希望列表上的数据添加到JComboBox。这样你就可以选择1180804
或1180804
或335605
。而不是整行[11808041180804335605]
。括号和冒号由列表中的toString()方法生成。如果希望以不同方式显示它们,则需要访问列表中的每个项目。您知道组合框有一个addAll方法?ComboBox.getItems().addAll(entry.getValue());抱歉,刚才看到您使用的是JComboBox而不是JavaFX,然后在listTobi:中的元素上进行循环迭代,但是如何在没有括号的情况下显示它呢?我尝试了entry.getValue().ToString()
但没有。我想进入列表中的每个项目,以便在控制台中显示:键和其他列表项目下面。使用combobox还不想做任何事情。我想能够控制列表的迭代。这正是我想要的!这个循环可以检查列表的大小吗?现在我想查看each键映射创建一个单独的组合框。我可以很容易地做这个循环吗?
Datum - [07.10.2014, 07.10.2014, 07.10.2014]
ProzessID - [1180804, 1180804, 335605]
for (Entry<String, List<String>> entry : map.entrySet())
{
System.out.println(entry.getKey() + ":");
for (String s : entry.getValue()){
System.out.println(s);
}
}