我有一组数据。例如:
汽车协议 汽车公民 越野车 越野车陆虎 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的人可以提供帮助吗?
答案 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);
}