制作具有多个标记的hashmap

时间:2015-07-29 05:18:53

标签: java

我有以下文本文件

0 name1 name2 name3 name4 vs. name11 name22 name33 name44
1 name1 name2 name3 name4 vs. name11 name22 name33 name44 

我想存储0, name1 through 4 and name11 through name44

我正在制作的节目告诉我哪支球队赢了。 如果第一个整数是0,则name11到name44获胜,反之亦然

我被困在如何制作多个令牌上?

这是我到目前为止所做的:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class Winning {

    public static int whoWon(String filename) {
        Map<String, String> map = new HashMap<String, String>();
        BufferedReader in = null;
        try {
            String line = "";
            in = new BufferedReader(new FileReader(filename));
            while ((line = in.readLine()) != null) {
                System.out.println(line);
                String parts[] = line.split(" ");
                map.put(parts[0], parts[1]);
            }
            in.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println(map.toString());

        return 0;
    }

    public static void main(String[] args) {
        Stats s = new Stats();
        s.wins("filepath/filename.txt");
    }
}

3 个答案:

答案 0 :(得分:2)

当然,地图可以存储一个Collection作为值,所以你可以做这样的事情......

Map<String, List<String>> map = new HashMap<String, List<String>>();
...
List<String> list = new ArrayList<String>();
list.add(parts[1]);
...add all tokens to list
map.put(parts[0], list);

答案 1 :(得分:1)

您可以使用@model IQueryable<File> @{ ViewBag.Title = "File"; } <h4>Number of files: <strong> @Model.Count() </strong></h4> @foreach (var item in Model) { @RenderItem(item); } Map<String, List<String>> map

答案 2 :(得分:0)

我建议将dto设为Team,您可以在其中存储团队成员名称等团队详细信息。

然后你可以将另一个dto设为Match,你可以在其中存储team1,team2和一个团队赢得的布尔值。

然后,您可以创建一个list Match,其中您可以放置​​每行文本文件。

如果第一个整数是0,那么name11到name44赢了,反之亦然,所以我猜你会有多行的值为0和1。

所以我在你的案例中没有看到Map的用例。