[英]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();
现在,您已经构建了HashMap
的vehicles
,您可以获取一个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.