gpt4 book ai didi

java - 从文件中对 ArrayList 进行排序

转载 作者:行者123 更新时间:2023-12-01 13:02:08 26 4
gpt4 key购买 nike

我有一个包含颜色列表及其十六进制值的文件(海军#000080)。我能够将文件内容读入 arrayList,但是,我尝试根据十六进制值对该列表进行排序。因此,我创建了两个额外的类,一个包含用于比较十六进制值的方法,另一个称为 Color,它表示我存储在列表中的信息类型。我的问题是,当我尝试将文件内容添加到列表中时,如下所示:-

colorNames.add(inputFileName.nextLine());

我收到一条错误消息“类型列表中的方法 add(Color) 不适用于参数(字符串)”

这是因为我按如下方式创建了列表:-

List<Color> colorNames = new ArrayList<Color>();

我明白该错误的含义,但我不知道如何解决它,也不知道所采取的方法是否正确!任何建议,将不胜感激。以下是我的来源。

//import statements

public class ReadStoreShow {

public static void main(String[] args) {

System.out.println("Please input a filename: ");
Scanner inputFile = new Scanner(System.in);
String fileName = inputFile.nextLine();
File colors = new File(fileName.toString());

//Receive number N from user
System.out.println("Please input a number N: ");
Scanner inputNumber = new Scanner(System.in);
int number = inputNumber.nextInt();

List<Color> colorNames = new ArrayList<Color>();

try {
Scanner inputFileName = new Scanner(colors);
while (inputFileName.hasNext()) {
colorNames.add(inputFileName.nextLine());
}
List<Color> subListOfColors = colorNames.subList(0, number);
Collections.sort(subListOfColors, new ColorComp());
for (int i = 0; i<subListOfColors.size(); i++)
System.out.println(subListOfColors.get(i));
inputFileName.close();

}

catch (FileNotFoundException e) {
System.out.println("File not found");
System.out.println("Please ensure that file name is <<name>>.txt");

}

}

}
class ColorComp implements Comparator<Color>{
@Override
public int compare(Color c1, Color c2){
String string1 = c1.toString();
String string2 = c2.toString();
int compareResult = string1.compareTo(string2);
if(compareResult < 0) {return 1;}
else {return -1;}
}
}
class Color {
private String colorName;
private String colorHex;

public Color(String n, String h) {
this.colorName = n;
this.colorHex = h;
}
public String getColorHex() {return colorHex;}
public String getColorName() {return colorName;}
public String toString() {return "Color Name: " + this.colorName + "Color Hex: " + this.colorHex;}
}

最佳答案

我认为首先您从文件中读取数据并将其存储到 Color 类对象中,然后将该对象添加到数组中。

关于java - 从文件中对 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23447492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com