我有以下功能。它接收一个数组列表。
在我的 GUI 上,我有一个可以在两种状态之间切换的按钮。一种按字母顺序对列表进行排序,另一种按出现顺序打印列表。
请注意,我正在从外部文件填充数组列表,并且我正在另一个函数中打开该文件,因此重新打开文件并用其内容重新填充列表数组似乎没有必要。
就像现在一样,列表按字母顺序排序,但不会按原始顺序打印回来。
如何创建一个单独的列表来保存排序后的列表,同时保持原始列表的顺序?
谢谢
sortButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (sortButton.getText().equals("Sort by Route")){
sortButton.setText("Sort Alphabetically");
Journey value = mapper.get(objectName);
ArrayList stops = value.getNewStop(); //loads an arraylist into stops
System.out.println(stops);
}
}
else if (sortButton.getText().equals("Sort Alphabetically")){
sortButton.setText("Sort by Route");
Journey value = mapper.get(objectName);
ArrayList stopsSorted = value.getNewStop(); // use the arraylist attribute
Collections.sort(stopsSorted);
System.out.println(stopsSorted);
}
}
}
});
最佳答案
我假设ArrayList
持有String
s:
ArrayList<String> stopsSorted = new ArrayList<>(value.getNewStop()); // use the arraylist attribute
Collections.sort(stopsSorted);
System.out.println(stopsSorted);
如您所见,我们通过 ArrayList
我们不想修改为新的 ArrayList<String>
的构造函数.
关于Java:创建一个单独的排序Arraylist,同时保留原始列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43877471/