我正在从文本文件中读取课堂名称(" B106")并将它们保存在数组列表中。 我需要按字母排序,然后按数字排序。 我读了一些关于使用Collections / Comparator的内容,但我无法成功实现它们,我该怎么做?
例: 输入: " B106"," D111"," A201"," B102"
输出: " A201"," B102"," B106"," D111"
我管理文件的类Core_Salas
public class Core_Sala {
//---------------------------------------------------------------------------
public static ArrayList<Sala> Sala = new ArrayList<Sala>();
private static File SF = new File("Salas.txt");
public static void LerSalas()
{
try
{
if(SF.exists()==true)
{
String[]parts;
Sala.clear();//Array list limpar
Scanner inputFile = new Scanner(SF);
while (inputFile.hasNextLine()) {
String line = inputFile.nextLine();
Sala s1 = new Sala(line);
Sala.add(s1);
}
inputFile.close();
}
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
if(SF.exists()==false)
{
PrintWriter out = null;
try
{
out = new PrintWriter(SF);
}catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "O ficheiro de utilizadores estava danificado ou era inexistente, foi criado um novo com o utilizador admin!");
}
out.close();
}
}
}
带吸气剂Setter和构造函数的类Sala
public class Sala {
private String Salas;
public Sala(String salas)
{
this.Salas=salas;
}
public String getSalas() {
return Salas;
}
public void setSalas(String salas) {
Salas = salas;
}
@Override
public String toString()
{
return Salas;
}
}
答案 0 :(得分:1)
Collections.sort()方法可以帮到你。
示例:
id="week2veganquantity"
id="exampleSelect1"
答案 1 :(得分:0)
你可以试试这个
public static void main(String[] args) {
LerSalas();
Collections.sort(salaData, new Comparator<Sala>() {
@Override
public int compare(Sala o1, Sala o2) {
return o1.getSalas().compareTo(o2.getSalas());
}
});
salaData.stream().forEach(System.out::println);
}
让我知道它是否适合你
答案 2 :(得分:0)
对于我的观点,如果你的Sala类只有一个String类型的属性,那么你不需要制作Sala Class。你可以直接将String添加到arrayList.and使用Collections.sort(),然后它将按字母顺序排序和数字。例如:
public class Test {
public static void main(String args[]){
List al = new ArrayList();
al.add("B106");al.add("A201");al.add("D111");al.add("BC102");
Collections.sort(al);
System.out.println(al);
}
}
但如果你必须使用Sala类,那么你可以实现Comparator或Comparable Interface。