위치를 처리하는 클래스 (예 : 00501 Holtsville NY 40.922326 -72.637078, 00544 Holtsville NY 40.922326 -72.637078
)를 작성하려고합니다.Java에서 Comparable 구현
필자는 Comparable 부분을 제외한 모든 것을 알아낼 수있었습니다. 제공된 메서드를 수정하여 해당 도시의 도시 이름을 기반으로 비교를 반환하려고합니다.
public class PostalCodes implements Comparable {
private String city;
private double latitude;
private double longitude;
private String zip;
private String state;
public PostalCodes(String aZip, String aCity, String aState, double aLatitude, double aLongitude)
{
city = aCity;
latitude = aLatitude;
longitude = aLongitude;
zip = aZip;
state = aState;
}
void setZip(String aZip)
{
zip=aZip;
}
void setState(String aState)
{
state=aState;
}
void setLocation(String aCity)
{
city = aCity.trim();
}
void setLatitude(double lat)
{
latitude = lat;
}
void setLongitude(double long1)
{
longitude = long1;
}
public String getState()
{
return state;
}
public String getZip()
{
return zip;
}
public String getLocation()
{
return city;
}
public double getLatitude()
{
return latitude;
}
public double getLongitude()
{
return longitude;
}
public String toString()
{
String result = String.format("%s %s,%s (%1.3f; %1.3f)",zip, city, state, latitude,longitude);
return result;
}
@Override
public int compareTo(Object arg0) {
// Confused
return 0;
}
}
그것은 모든 모든 도움을 많이 감사합니다 뭔가
public int compareTo (Object arg0){
if (arg0>city)
return True;
처럼 될 것이다. 그것을 간단하게 유지하십시오, 이것은 Comparable 것을 구현하려고 시도한 첫 번째 것입니다.
는편집 :
나는 아래와 같이 내 주요의 배열을 정렬하려고 ....
공용 클래스 Hmwk {
public static void main(String[] args) throws IOException {
URL url = new URL("http://noynaert.net/zipcodes.txt");
Scanner input=new Scanner (url.openStream());
int counter =0;
final int MAX_SIZE=50000;
PostalCodes[] codesArray= new PostalCodes[50000];
while (input.hasNextLine() && counter < MAX_SIZE)
{
String line=input.nextLine();
String[] tokens;
tokens = line.split("\t");
if (tokens.length != 5)
{
continue;
}
String zip=tokens[0];
String city=tokens[1];
String state=tokens[2];
double lat=Double.parseDouble(tokens[3]);
double longy=Double.parseDouble(tokens[4]);
PostalCodes code=new PostalCodes(zip,city,state,lat,longy);
codesArray[counter]= code;
counter++;
}
Arrays.sort(codesArray);
for (int i =0;i<counter; i+=1000)
{
System.out.println(codesArray[i].toString());
}
}
} 나는 오류를 얻을
Exception in thread "main" java.lang.NullPointerException
at PostalCodes.compareTo(PostalCodes.java:69)
at PostalCodes.compareTo(PostalCodes.java:1)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at Hmwk.main(Hmwk.java:37)
여기 신의 녹색 지구는 어떻게 된 것입니까?
널 체크 PLS를 'public int compareTo (다른 우편 번호) {돌아 가기 other == null? 1 : city.compareTo (other.getLocation()); }' – huocp
null check에서 기술적으로 올바르지 만, 구현에 특화된 것입니다. 만약'city'가 결코 null이 아니게 보장된다면, 그럴 필요가 없습니다. 즉, 여기서 초기에 null 체크가없는 것은 해당 가정이 유효하지 않을 수있는 장소를 강조 표시합니다. – Makoto
굉장히 고마워. – user102817