如何根据最佳列值从2d数组的第二列获取值?

时间:2019-05-17 12:14:23

标签: java

我有一组数据。例如:

汽车协议 汽车公民 越野车 越野车陆虎 muv innova

我想将其存储在扫描仪或哈希图中,并根据输入检索值。

如果输入“ car”,我想传递URL + / accord和URL + / civic作为输出

如果输入“ muv”,我想将URL + / innova作为其输出传递

String URL = "www.abc.com";
String Vehicletype = "";
@DataProvider(name = "irLanguage")
    public Object[][] lang() {

        @SuppressWarnings("resource")
        Scanner s = new Scanner(
                "Car         /accord/\n" +
                "Car         /civic/\n" +
                "suv         /landcruzer/\n" +
                "suv         /rangerover/\n" +
                "muv         /innova/\n");
        Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();
        while (s.hasNext()) {

            String key = s.next();
            if (!map.containsKey(key))
                map.put(key, new LinkedList<String>());

            map.get(key).add(s.next());

        }
        urlArray = map.get(vehicletype);
        String[][] shades = new String[urlArray.size()][2];
        for (int i = 0; i < urlArray.size(); i++) {
            shades[i][0] = urlArray.get(i).toString();
            shades[i][1] = URL + urlArray.get(i).toString();
            lang = shades[i][0];
            System.out.println(shades[i][0]);

        }

        return shades;
    }

在这里,代码工作正常。也就是说,如果输入的车辆类型为 car ,则输出网址为www.abc.com/accord/和www.abc.com/civic/ 如果车辆类型为muv,则仅返回www.abc.com/innova/。此设置对我来说很好。但是,我想知道是否有任何更简单的方法可以做到这一点。 精通Java的人可以提供帮助吗?

1 个答案:

答案 0 :(得分:1)

您的想法正确,我将构建一个HashMap,其中包含一个键(例如“汽车”)和该键的所有所需值(例如“雅阁”,“公民”)

HashMap<String, ArrayList<String>> vehicles = new HashMap<String, ArrayList<String>>();
ArrayList<String> makes = new ArrayList<String>();
makes.add("accord");
makes.add("civic");
vehicles.put("car", makes);
makes.clear();

makes.add("landcruzer");
makes.add("rangerover");
vehicles.put("suv", makes);
makes.clear();

makes.add("innova");
vehicles.put("muv", makes);
makes.clear();

现在您已经建立了vehicles HashMap,则可以获取一个Key并获取所有值并构建您的URL。

makes = vehicles.get("car");
for (String make : makes)
{
    System.out.println("www.abc.com/" + make);
}