繁体   English   中英

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

[英]How to get values from the second column of a 2d array based on the fiest column value?

我有一组数据。 例如:

汽车雅阁公民suv Landcruzer suv landrover 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的人可以提供帮助吗?

您有正确的想法,我将构建一个包含一个键(例如“汽车”)和该键的所有所需值(例如“雅阁”,“公民”)的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();

现在,您已经构建了HashMapvehicles ,您可以获取一个Key并获取所有Values并构建您的URL。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM