ऑर्डर करने के लिए तुलनाकर्ता का उपयोग करना मुझे दिनांक और समय के अनुसार नियुक्तियों को ऑर्डर करना होगा। मेरे पास नियुक्तियों का एक ऐरेलिस्ट है और उन्होंने अपनी तिथियों और समय की तुलना करने के लिए एक तुलनित्र बनाने की कोशिश की है। मैं Collections.sort विधि का उपयोग करने की कोशिश कर रहा हूं, इसे अपॉइंटमेंट्स की ऐरेलिस्ट और मेरे द्वारा बनाए गए अपॉइंटमेंट कॉम्पैटर को पास कर रहा हूं। संकलन करते समय मुझे "सॉर्ट करने के लिए कोई उपयुक्त विधि" नहीं मिलती है। यहाँ संकलक द्वारा उत्पन्न पूर्ण त्रुटि संदेश के लिए एक लिंक है: http://prntscr.com/7y4qbArrayList Java
तुलनाकारी: सिंटैक्स त्रुटि वाला
public class AppointmentComparator implements Comparator<Appointment>
{
public int compare(Appointment a, Appointment b)
{
if (a.getDay() < b.getDay())
return -1;
if (a.getDay() == b.getDay())
{
if (a.getStart() < b.getStart())
return -1;
if (a.getStart() > b.getStart())
return 1;
return 0;
}
return 1;
}
पंक्ति:
Collections.sort(book, new AppointmentComparator());
चर पुस्तक नियुक्ति की एक ArrayList है। ArrayList<Appointment>
AppointmentBook वर्ग:
import java.util.ArrayList;
import java.util.Collections;
public class AppointmentBook
{
private ArrayList<Appointment> book;
public AppointmentBook()
{
book = new ArrayList<Appointment>();
}
public void addAppointment(Appointment appt)
{
book.add(appt);
Collections.sort(book, new AppointmentComparator());
}
public String printAppointments(int day)
{
String list = "";
for (int i = 0; i < book.size(); i++)
{
if (book.get(i).getDay() == day)
{
list = list + "Appointment description: " + book.get(i).getDescription() + "\n" + "Date of Appointment: " +
book.get(i).getDay() + "\n" + "Time: " + book.get(i).getStart() + " - " + book.get(i).getEnd() + "\n" + "\n";
}
}
return list;
}
नियुक्ति वर्ग:
public class Appointment
{
private String desc;
private int day; //in format mmddyyyy
private int start; //in format hhmm
private int end; //in format hhmm
public Appointment(String description, int aptDay, int startTime, int endTime)
{
desc = description;
day = aptDay;
start = startTime;
end = endTime;
}
public String getDescription()
{
return desc;
}
public int getDay()
{
return day;
}
public int getStart()
{
return start;
}
public int getEnd()
{
return end;
}
}
क्या आप हमारे लिए संपूर्ण अपॉइंटमेंट कॉम्परेटर कक्षा पोस्ट कर सकते हैं? कक्षा परिभाषा में स्वयं एक समस्या हो सकती है, और हम केवल संकलक त्रुटि/कक्षा परिभाषा के बिना अनुमान लगा सकते हैं। –
क्या आप यह भी पोस्ट कर सकते हैं कि आपने Collections.sort() को कॉल करने से पहले पुस्तक चर को कैसे परिभाषित किया है? –
पूरी कक्षा – Legendish