// Sắp xếp đối tượng userDefined từ ArrayList<>...
nhập java.io.*;
nhập java.util.*;
lớp Song triển khai Comparable{
Tiêu đề chuỗi;
Phim chuỗi;
Đánh giá chuỗi;
public int so sánhTo(Bài hát s){
//System.out.println(getTitle()+" "+s.getTitle());
/*Nhận xét phía trên nhằm mục đích thử nghiệm,
*vì tôi muốn xem giá trị getTitle() được so sánh là bao nhiêu..
*nhưng tôi không thể hiểu được.
*/
trả về getTitle().compareTo(s.getTitle());
}
public Song(String t, String m, String r){
// Quy ước đặt tên RIP.
tiêu đề = t;
phim = m;
đánh giá = r;
}
Chuỗi công khai getTitle(){
trả lại tiêu đề;
}
Chuỗi công khai toString(){
trả lại tiêu đề;
}
}
lớp ArrayListDemo{
ArrayList songsList = new ArrayList();
public static void main(String[] args){
ArrayListDemo mới();
}
công khai ArrayListDemo(){
getSongs();
System.out.println(danh sách bài hát);
Collections.sort(songsList);
System.out.println(danh sách bài hát);
}
khoảng trống công khai getSongs(){
try{
Tệp tệp = Tệp mới("SongsList.txt");
//kiểm tra bên dưới để biết SongsList.txt
Trình đọc BufferedReader = BufferedReader mới(FileReader(file) mới);
Dòng chuỗi = null;
while((line = reader.readLine()) != null){
addSong(dòng);
}
} bắt(IOException e){
e.printStackTrace();
}
}
public void addSong(String lineToParse){
Chuỗi [] mã thông báo = lineToParse.split("/");
Bài hát nextSong = Bài hát mới(token[0], token[1], token[2]);
bài hátList.add(nextSong);
}
}
Danh sách bài hát.txt
Sake Soch Na / Vận tải hàng không / 9.1
Jeena/Badlapur/8.7
Tere Sang Yaara / Rustom / 8.8
Aayat Ki Tarah / BaajiravMastaani / 7.9
Ikk Kudi/UdtaPunjab/7.5
Tây Hải / Rustom / 7.8
Đầu ra: -
Trước khi sắp xếp...
[Soch Na Sake, Jeena, Tere Sang Yaara, Aayat Ki Tarah, Ikk Kudi, Tây Hải]
Sau khi sắp xếp...
[Aayat Ki Tarah, Ikk Kudi, Jeena, Soch Na Sake, Tây Hải, Tere Sang Yaara]
Lưu ý: - Trình độ tiếng Anh sơ cấp!!!
Vì vậy, đây là những gì chương trình của tôi thực hiện...Citation:-HeadFirstJava 2nd, JukeBox3 Số trang- 550
Vì vậy, đây là câu hỏi...
Tôi hiểu hầu hết nó...nhưng đó là nơi đầu óc tôi quay cuồng..oO
public int so sánhTo(Bài hát s){
trả về getTitle().compareTo(s.getTitle());
}
getTitle() & s.getTitle()
Nơi bạn lấy giá trị từ getTitle() và so sánh... ok Tôi biết so sánhTo() so sánh Chuỗi nhưng tôi cũng biết quy tắc -1,0,1 (<,=,>) và điều khiến tôi cười là getTitle () nơi thu được giá trị. Còn một điều nữa... cuốn sách nói
Collections.sort(songsList);
Khi phương thức này được gọi, phương thức sắp xếp sẽ gửi một phần tử từ songList tới phương thức so sánhTo(). Có nghĩa là tiêu đề của phần tử được gửi bởi s.getTitle() = Sort(). Có đúng không?
Nhưng trong đó giá trị được lấy từ getTitle() đầu tiên... giá trị sau return và trước .compareTo().
Xin hãy giúp tôi ở đây, kiểm tra tài liệu, các câu trả lời khác, mọi thứ tôi có thể làm trong hai ngày qua...
Nói một cách đơn giản, tôi muốn biết getTitle() so sánh từ đâu và giá trị nào.
public intcompareTo(Bài hát)
Dùng để so sánh 2 Bài hát
sự vật. Một trong số đó là phương thức gọi phương thức và phương thức còn lại được truyền dưới dạng tham số.
Ví dụ:
Bài hát s1 = ...
Bài hát s2 = ...
int s1.compareTo(s2);
Trong ví dụ này,public intcompareTo(Bài hát)
trong chủ đề getTitle()
sẽ trở lại s1
tiêu đề, trong khi s.getTitle()
sẽ trở lại s2
tiêu đề.
Collections.sort(songsList);
sẽ luôn được sử dụng so sánhTo
Hãy so sánh 2 Bài hát
Đối tượng - một trong số đó sẽ gọi phương thức và phương thức còn lại sẽ được truyền dưới dạng tham số.
Tôi là một lập trình viên xuất sắc, rất giỏi!