我有一个查询,我希望你的意见。 我存储在一个名为trip的ArrayList()中,其中包括寄存器flightNo(String),country(String),people(int)以及另一个名为distance的HashMap(float,String),其中String是国家和浮点数是距离。我想比较两个集合(通过检查目的地),如果有相同的输出,我得到flightNo,目的地,距离,人和另一个属性(根据距离和乘客计算)。 / p>
我有一个像ArrayList(Trips)这样的输入,其中相同的flightNo可以去不同的国家
No Country People
AB12 France 100
CD23 UK 120
AB12 Italy 80
FR45 Italy 45
SE56 Sweden 120
FR34 Norway 125
CD23 Poland 200
NM89 Romania 100
KL78 Bulgaria 125
另一个输入类似于HashMap(float,String),其中float是距离,String是国家。它看起来像这样:
Country Distance
France 900.45 miles
UK 1200.32 miles
Italy 1010.34 miles
Sweden 1500.89 miles
Norway 140.12 miles
Poland 700.98 miles
Romania 600.21 miles
Bulgaria 1035.23 miles
所以我想根据目的地进行检查并获得类似的输出
No Country People Distance fuelConsumption(distance * people)
CD23 UK 120 1200.32 miles 1000 (i.e)
AB12 Italy 80 1010.34 miles 800
FR45 Italy 45 1010.34 miles 500
SE56 Sweden 120 1500.89 miles 340
FR34 Norway 125 140.12 miles 310
CD23 Poland 200 700.98 miles 250
NM89 Romania 100 600.21 miles 100
KL78 Bulgaria 125 1035.23 miles 90
所以我已经到达了我将所有这些信息存储在TreeMap(String,ArrayList)中的地方,这些信息称为详细信息,其中我将国家作为关键字,并将所需的所有信息都放在此TreeMap的值中作为字符串的ArrayList。
我不知道如何以漂亮的格式输出,然后获取/打印关于燃料消耗的前三个和最后三个目的地。
这是我编写的代码,并返回TreeMap详细信息,我获取值并想以某种方式打印。
public Map<String, TreeSet<String>> getDetails()
{
for (Float distance : destinations.keySet())
{
String destinations = destinations.get(distance);
for (Journeys j : journeys) {
String places = j.getDestination();
if (destinations.equals(places)) {
*//destinationsList is a TreeSet<String>*
destinationsList = details.get(destinations);
if (destinationsList == null) {
destinationsList = new TreeSet<String>();
}
destinationsList.add((j.getFlight() + " "
+ j.getCountry() + " " + distance
+ "miles" + " " + j.getPeople()
+ " " + j.getFuelConsumption(distance))
+ "\n");
details.put(destinations, destinationsList);
}
}
}
return details;
}
在destinationList.add中的我试图在输入值时给出一个很好的格式,但没有运气。而且我也不知道是否必须以另一种方式存储它们以便我解释第一个和关于燃料消耗的最后三个条目。按燃料排序,而不是根据他们按照我们这样做的方式进行分类。
非常感谢你!!
答案 0 :(得分:0)
从我的角度来看,您不需要TreeMap或TreeSet。请尝试以下方法:
使用Java 8(Streaming-API)可能有所帮助。这是解决问题的可能方法,还是某些编号步骤需要解决问题?