Java:创建一个单独的排序Arraylist,同时保留原始列表

标签 java arraylist

我有以下功能。它接收一个数组列表。

在我的 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/

相关文章:

java - 比较枚举时简化测试

java - 每次检测到某个字符串时尝试清除 TextWatcher 并继续读取 EditText

javascript - 在 javascript 中读取一个 spring Controller 模型

java - Akka:在参与者之间通信和处理特殊状态(非错误)

c# - 将两个列表元素合并为 json 对象

java - 如何添加两个对象?

java - 声明数组增量元素的快速方法 - Java

Java 8 lambda 从对象列表创建字符串列表

java - 使用 ArrayList<Book> 存储书名

java - 为什么文件文档中的文本没有被打印出来?