ArrayListに複数の情報を備えた構造体を格納したい場合がある。その場合は構造体の代わりにクラスを生成してArrayListに格納することで同等の機能を実現することができる。 クラスの準備とローカル変数の定義 public List<MusicRecord> songs = new ArrayList<MusicRecord>(); // 再生リストの1レコードを管理するクラス class MusicRecord{ private String fileName; private int beginTime; private int endTime; private String viewName; public MusicRecord(String AFileName, String AViewName, int ABeginTime, int AEndTime){ this.fileName=AFileName; this.beginTime=ABeginTime; this.endTime=AEndTime; this.viewName=AViewName; } public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileName() {
return fileName;
}
public void setBeginTime(int beginTime) {
this.beginTime = beginTime;
}
public int getBeginTime() {
return beginTime;
}
public void setViewName(String viewName) {
this.viewName = viewName;
}
public String getViewName() {
return viewName;
}
public void setEndTime(int endTime) {
this.endTime = endTime;
}
public int getEndTime() {
return endTime;
} } ArrayListにクラスを格納 songs.add(new MusicRecord(file.getName(), file.getName(), -1, -1)); クラスが格納されたArrayListの並び替え class StringComparator implements Comparator<MusicRecord> { public StringComparator() { } public int compare(MusicRecord arg0, MusicRecord arg1) { return (arg0.getViewName()).compareTo(arg1.getViewName()); } } Collections.sort(songs, new StringComparator()); ArrayListに格納されているクラスの参照 songs.get(iCurrentIndex).getBeginTime();
|
android >