[英]Java Sorting arrayList based on textField
背景:我創建了這個員工記錄應用程序,您可以在其中添加人員ID,名字,姓氏,薪資和開始日期。 它由“添加”按鈕,“刪除”按鈕,“列表”組合框和輸出組成。
我需要幫助的是按ID排序arrayList並在輸出中顯示排序的版本。 `public class 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);
}`
}
使用Collections.sort(List, Comparator)
,它允許您通過使用Comparator
以自定義方式對List
進行排序。
因此,基於對您的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());
}
});
現在請注意,這將按自然順序對ID進行排序,即1
將不會出現在10
之前,這就是String
排序的工作方式......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.