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