Мне нравится создавать настоящую карту, где я могу найти автозаправочные станции в своем районе.Создание реальной карты с помощью HashMap в Java
Я начал с создания HashMap:
ключ => Координаты
значение => Hotel
HashMap<Coordinates, Hotel> m = HashMap<Coordinates, Hotel>();
Это являются классы:
public class Coordinates {
private double lng;
private double lat;
public Coordinates(double x, double y) {
lat = x;
lng = y;
}
public double getLng() {
return lng;
}
public double getLat() {
return lat;
}
public void setLat(double l) {
lat = l;
}
public void setLng(double l) {
lng = l;
}
public boolean equals(Coordinates other) {
return ((lng == other.getLng()) && (lat == other.getLat()));
}
public int hashCode() {
int lng2 = (int) (this.lng * 100000);
int lat2 = (int) (this.lat * 100000);
//Use a prime number for security
return 31 * (lng2 + lat2);
}
}
public class Hotels {
public class Info {
public String text;
public Info(String t) {
text = t;
}
}
private Coordinates coords;
private Info description;
public Hotel(double lat, double lng, String text) {
this.coords = new Coordinates(lat, lng);
this.description = new Info(text);
}
public Coordinates getCoords() {
return coords;
}
public Info getInfo() {
return description;
}
public String getDescription() {
return description.text;
}
}
Задача что я предложил себе (не домашнее задание) создать функцию, которая при вызове нс все отели в радиусе, что вы заявили:
public Iterable<Hotel> search(double lat, double lng, double radius) {
//Code Here
}
Очевидно, что если я хочу использовать HashMap, я НЕ хочу, чтобы перебирать все отели. Я хочу иметь лучшую сложность в функции.
EDIT: Это карта XD
http://i.stack.imgur.com/7vF5Q.jpg
Что вы имеете в виду "реальной" карты? «HashMap» - реальный, это не иллюзия. – Maroun
Я имею в виду карту, такую как дорожная карта – Alex
С помощью 'HashMap' у вас будут проблемы. Вы не можете устранить координаты, не глядя на них. «TreeMap>', хотя ...? –
cHao