java comparator内部类_java - Java Comparator使用.reverseOrder()但内部类 - 堆栈内存溢出...
我正在創建一個簡單的程序來了解Java Comparator類。 我已經按順序對一個Arraylist了排序,但現在我想按降序對列表進行排序,但是我在調??用.reverseOrder()方法時遇到問題,因為我使用了一個實現Comparator的內部類(歌曲是一首歌)容納吸氣劑和制定者方法的類)。
這是我的SongSort課程,其中包含分類過程等。
import java.util.*;
import java.io.*;
public class SongSort
{
ArrayList songList = new ArrayList();
public void main(String[] args)
{
new SongSort().go();
}
class ArtistCompare implements Comparator
{
public int compare(Song one, Song two)
{
return one.getRating().compareTo(two.getRating());
}
}
public void go()
{
getSongs();
System.out.println(songList);
//Collections.sort(songList);
System.out.println(songList);
ArtistCompare artistCompare = new ArtistCompare();
Collections.sort(songList, artistCompare);
System.out.println(songList);
}
public void getSongs()
{
try{
File file = new File("SongListMore.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = null;
while((line = reader.readLine()) != null)
{
addSong(line);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void addSong(String lineToParse)
{
String [] tokens = lineToParse.split("/");
Song nextSong = new Song(tokens[0], tokens[1], tokens[2], tokens[3]);
songList.add(nextSong);
}
}
這是我簡單的Song課;
public class Song //implements Comparable
{
private String title;
private String artist;
private String rating;
private String bpm;
public Song(String t, String a, String r, String b)
{
title = t;
artist = a;
rating = r;
bpm = b;
}
public String getTitle()
{
return title;
}
public String getArtist()
{
return artist;
}
public String getRating()
{
return rating;
}
public String getBpm()
{
return bpm;
}
public String toString()
{
return ("Title : " + title + "," + " Artist : " + artist + " Rating : " + rating);
}
}
任何人都可以幫我弄清楚我將在SongSort類中調用reverseOrder()方法,因為它不會編譯?
總結
以上是生活随笔為你收集整理的java comparator内部类_java - Java Comparator使用.reverseOrder()但内部类 - 堆栈内存溢出...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: daz模型导入marvelous_传世工
- 下一篇: linux连接外部库时候编译,交叉编译时