1
나는 공항에 승객 명단이 있으며, 각 승객은 목적지가 있으며, 나는 더 자주 발생하는 목적지를 알고 싶다.개체 목록에서 더 자주 발생하는 특성을 어떻게 알 수 있습니까?
목록은 java의 ArrayList입니다. (의사 코드)의 라인을 따라
나는 공항에 승객 명단이 있으며, 각 승객은 목적지가 있으며, 나는 더 자주 발생하는 목적지를 알고 싶다.개체 목록에서 더 자주 발생하는 특성을 어떻게 알 수 있습니까?
목록은 java의 ArrayList입니다. (의사 코드)의 라인을 따라
보십시오. 여기
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;
}
}
뭔가 : 루프에 대해 하나의 최적화 코드 아래
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());
입니다. 진지하게,이 숙제는 무엇입니까? –
숙제가 아니라 프로젝트에 대한 것이지만 중요합니까? –
카운터를 사용해 보았습니다. 그러나 문제는 운명 수가 무작위이므로 해결할 수 없습니다. –