基于textField的Java排序数组列表

基于textField的Java排序数组列表,java,sorting,arraylist,Java,Sorting,Arraylist,背景: 我正在创建这个员工记录应用程序,您可以在其中添加个人ID、名字、姓氏、工资和开始日期。它由“添加”按钮、“删除”按钮、“列表”组合框和输出组成 我需要的帮助是按ID对arrayList进行排序,并在输出中显示排序后的版本。 `公共类EmployeeRecordsView扩展了FrameView{ ArrayList <one> myList = new ArrayList <one>(); //List<one> records = n

背景: 我正在创建这个员工记录应用程序,您可以在其中添加个人ID、名字、姓氏、工资和开始日期。它由“添加”按钮、“删除”按钮、“列表”组合框和输出组成

我需要的帮助是按ID对arrayList进行排序,并在输出中显示排序后的版本。 `公共类EmployeeRecordsView扩展了FrameView{

    ArrayList <one> myList = new ArrayList <one>();
    //List<one> records = new ArrayList<one>();
    String iD, first, last, salary, startDate;
    public EmployeeRecordsView(SingleFrameApplication app) {
      //Cut out code
    }

    class one {
        String iD, first, last, salary, startDate;
        one (String _iD, String _first, String _last, String _salary, String
        _startDate){
            iD = _iD;
            first = _first;
            last = _last;
            salary = _salary;
            startDate = _startDate;
        }
    }
    private void btnAddMouseClicked(java.awt.event.MouseEvent evt) {                                    
       one emp;
       iD = id.getText();
       first = firstName.getText();
       last = lastName.getText();
       salary = sal.getText();
       startDate = start.getText();
       emp = new one(iD, first, last, salary, startDate);
       myList.add(emp);
    }                                   

    private void btnRemoveMouseClicked(java.awt.event.MouseEvent evt) {                                       
        String remove;
        remove = id.getText();
        myList.remove(remove);
    }                                      

    private void btnExitMouseClicked(java.awt.event.MouseEvent evt) {                                     
        System.exit(0);
    }                                    


    private void jComboBox1MouseClicked(java.awt.event.MouseEvent evt) {
     if (jComboBox1.getSelectedItem() == "Order of Addition"){
            String temp="";

        for (int x=0; x<=myList.size()-1; x++) {
            temp = temp + "ID#: " + myList.get(x).iD + ", "
                    + "First Name: " + myList.get(x).first + ", "
                    + "Last Name: " + myList.get(x).last + ", "
                    + "Annual Salary: " + myList.get(x).salary + ", "
                    + "Starting Date: " + myList.get(x).startDate + "\n";
        }
        outPut.setText(temp);
        }

     if (jComboBox1.getSelectedItem() == "ID"){
         String temp="";
        for (int x=0; x<=myList.size()-1; x++) {
                  temp = temp + "ID#: " + myList.get(x).iD + ", "
                    + "First Name: " + myList.get(x).first + ", "
                    + "Last Name: " + myList.get(x).last + ", "
                    + "Annual Salary: " + myList.get(x).salary + ", "
                    + "Starting Date: " + myList.get(x).startDate + "\n";
        }
        outPut.setText(temp);
     }`
    }
ArrayList myList=new ArrayList();
//列表记录=新的ArrayList();
字符串iD,第一个,最后一个,薪水,起始日期;
public EmployeeRecordsView(SingleFrameApplication应用程序){
//剪切代码
}
一班{
字符串iD,第一个,最后一个,薪水,起始日期;
一个(字符串iD,字符串第一,字符串最后,字符串薪水,字符串
_起始日期){
iD=_iD;
first=_first;
last=_last;
工资=_工资;
开始日期=_开始日期;
}
}
私有void btnAddMouseClicked(java.awt.event.MouseEvent evt){
一个环境管理计划;
iD=iD.getText();
first=firstName.getText();
last=lastName.getText();
salary=sal.getText();
startDate=start.getText();
emp=新的(iD、第一个、最后一个、工资、起始日期);
myList.add(emp);
}                                   
私有void btnRemouseClicked(java.awt.event.MouseEvent evt){
脱绳;
remove=id.getText();
myList.remove(移除);
}                                      
私有void btnExitMouseClicked(java.awt.event.MouseEvent evt){
系统出口(0);
}                                    
私有void JCombox1MouseClicked(java.awt.event.MouseEvent evt){
if(jcombox1.getSelectedItem()=“加法顺序”){
字符串temp=“”;
对于(int x=0;x使用,这将允许您通过使用
比较器以自定义方式对
列表进行排序

因此,基于对
one
类的轻微修改,包含一个getter来检索
iD

class One {

    String iD, first, last, salary, startDate;

    One(String _iD, String _first, String _last, String _salary, String _startDate) {
        iD = _iD;
        first = _first;
        last = _last;
        salary = _salary;
        startDate = _startDate;
    }

    public String getID() {
        return iD;
    }
}
你可以用

Collections.sort(myList, new Comparator<One>() {
    @Override
    public int compare(One o1, One o2) {
        return o1.getID().compareTo(o2.getID());
    }
});
Collections.sort(myList,newcomparator(){
@凌驾
公共整数比较(一个o1,一个o2){
返回o1.getID().compareTo(o2.getID());
}
});

现在请注意,这将按自然顺序对ID进行排序,也就是说,
1
不会出现在
10
之前,这就是
String
排序的工作原理…

@MadProgrammer我把它放在哪里?你想什么时候对列表进行排序?Conor这毫无意义。仅仅因为你可以做一些事情并不意味着你应该做一些事情。除了阅读教程之外——在做更多类似的陈述之前,您肯定应该阅读Swing JButton教程。@ConorWatt阅读教程以了解您应该使用的事件处理程序。建议对按钮使用
ActionListener
,而不是
MouseListener
,因为当美国er按[Enter](并在一些外观上按[Space]),就像用鼠标单击一样。第一行我会在extends FrameView>旁边写implements Comparator吗?@ConorWatt:不,没有GUI实现Comparator。我会放Collections.sort(myList,new Comparator(){public int compare(一个o1,一个o2){return o1.getID().compareTo(o2.getID());}});在最后一个for station的内部或外部?您应该将它放在您希望列表排序的位置,可能是在它被更新之后和显示结果之前