1
A
回答
0
嘗試下面的代碼只有一個for循環優化。
package com.rais;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.rais.vo.Passenger;
/**
* @author Rais.Alam
* @date Dec 17, 2012
*/
public class Client
{
public static void main(String[] args)
{
Client client = new Client();
Passenger p1 = new Passenger("A", "USA");
Passenger p2 = new Passenger("B", "USA");
Passenger p3 = new Passenger("C", "UK");
Passenger p4 = new Passenger("D", "UK");
Passenger p5 = new Passenger("E", "UK");
Passenger p6 = new Passenger("F", "UK");
List<Passenger> passengers = new ArrayList<Passenger>();
passengers.add(p1);
passengers.add(p2);
passengers.add(p3);
passengers.add(p4);
passengers.add(p5);
passengers.add(p6);
System.out.println(client.getMostVistedDestination(passengers));
}
public String getMostVistedDestination(List<Passenger> passengers)
{
Map<String, Integer> tempMap = new HashMap<String, Integer>();
int maxCount = 0;
String dest = "";
for (Passenger passenger : passengers)
{
int count = 1;
if (tempMap.containsKey(passenger.getDestination()))
{
count = tempMap.get(passenger.getDestination()) + 1;
if (maxCount < count)
{
maxCount = count;
dest = passenger.getDestination();
}
}
else if (maxCount == 0)
{
maxCount = count;
dest = passenger.getDestination();
}
tempMap.put(passenger.getDestination(), count);
}
return dest;
}
}
這裏是Passenger.java
package com.rais.vo;
/**
* @author Rais.Alam
* @date Dec 17, 2012
*/
public class Passenger
{
private String name;
private String destination;
/**
* @param name
* @param destination
*/
public Passenger(String name, String destination)
{
super();
this.name = name;
this.destination = destination;
}
/**
* @return the name
*/
public String getName()
{
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name)
{
this.name = name;
}
/**
* @return the destination
*/
public String getDestination()
{
return destination;
}
/**
* @param destination
* the destination to set
*/
public void setDestination(String destination)
{
this.destination = destination;
}
}
1
沿(在僞代碼)東西線:
Map<Destination, Integer> map = new HashMap<>();
for(Passenger passenger : list) {
Destination dest = passenger.getDestination();
int times = 0;
if(map.hasKey(dest)) {
times = map.get(dest);
}
map.put(dest, ++times);
}
Collections.sort(map.values());
相關問題
- 1. 如何從數組列表中更改對象的屬性?
- 2. 通知更改列表中的對象屬性
- 3. 從python中的對象列表獲取對象屬性列表
- 4. 列表<>中的C#對象頻率,按對象屬性
- 5. 下劃線:查找數組中最頻繁出現的對象?
- 6. 在Flex中,我如何知道動態對象的屬性何時更改?
- 7. 從對象列表中獲取屬性
- 8. 是否有可能知道對象屬性何時更改?
- 9. 如何在VBA中列出圖表對象的屬性?
- 10. 刪除不頻繁出現的列表中的單詞
- 11. 如何知道哪些屬性更新?
- 12. 如何使用對象屬性列表排序對象列表
- 13. 如何複製列表中的對象並更新重複對象的屬性?
- 14. 如何從SQLAlchemy映射對象中發現表屬性
- 15. python - 從屬性存在的對象列表中收集屬性
- 16. 對象上更新屬性只知道它的名字
- 17. 訪問JavaScript的對象屬性,而不知道屬性名
- 18. 如何知道對象屬性的長度
- 19. 如何找到只知道ATTR值對象的每個屬性
- 20. 對象屬性如何知道它的父項?
- 21. 如何根據未知屬性過濾對象列表
- 22. 如何在Python中查找對象列表時更改屬性
- 23. 從python中的對象列表中提取屬性列表
- 24. 從對象列表中獲取一個對象的屬性
- 25. 如何知道列表中的對象的類型?
- 26. 從列表中的對象的屬性創建列表
- 27. 從XML中知道對象
- 28. 如何使用LINQ來更新一個知道它名字的對象屬性?
- 29. 對象屬性未從下拉列表中更新值
- 30. 如何在屬性深度爲n的對象列表中查找給定屬性的所有出現次數?
答案是巴黎。不,認真,這是功課嗎? –
它不是作業,它是一個項目,但它有關係嗎? –
我試過使用計數器,但問題是,命運的數量是隨機的,所以它不會解決這個問題.. –