gpt4 book ai didi

java - 如何使用 Collections.sort() 使我的数组按字母顺序排序? -Java

转载 作者:行者123 更新时间:2023-12-01 11:18:07 25 4
gpt4 key购买 nike

import java.util.ArrayList;
import java.util.Collections;

public class U3A4_CDCollection extends javax.swing.JFrame {

private ArrayList<String> strArray;

public U3A4_CDCollection() {
initComponents();

private void btnInitializeActionPerformed(java.awt.event.ActionEvent evt) {
btnAdd.setEnabled(true);
btnRemove.setEnabled(true);

strArray = new ArrayList();
strArray.add("Calvin Harris - Overdrive(Part 2)");
strArray.add("DVBBS & Borgeous - TSUNAMI");
strArray.add("Martin Garrix - Tremor");
strArray.add("Martin Garrix - Animals");
strArray.add("Firebeatz - Max Ammo");

Collections.sort(strArray);
for(int i = 0; i < strArray.size(); i++){
this.txtAreaOutput.append("\n" + strArray.get(i));
}
btnInitialize.setEnabled(false);
}
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
strArray.add(this.txtInputName.getText());
System.out.println(strArray);

Collections.sort(strArray);
this.txtAreaOutput.append("\n" + strArray.get(strArray.size()-1));
}

private void btnRemoveActionPerformed(java.awt.event.ActionEvent evt) {
strArray.remove(this.txtInputName.getText());
String strBadSong = this.txtInputName.getText();
for (int i = 0; i < strArray.size()-1; i++){
if (strBadSong.equals(strArray.get(i))){
strArray.remove(this.txtInputName.getText());
}
}
Collections.sort(strArray);
this.txtAreaOutput.setText(" ");
for (int i = 0; i < strArray.size(); i++){
this.txtAreaOutput.append("\n" + strArray.get(i));
}
}

我主要需要有关如何正确使用 Collections.sort() 方法的帮助。我是否遗漏了什么或将它们放在错误的位置?我试过把它放在不同的地方,但我还没弄清楚。任何帮助将不胜感激!

最佳答案

您的问题是,当您从 GUI 输入新字符串并单击“添加”时,输出的顺序不正确?我认为这是由 btnAddActionPerformed() 中的逻辑错误引起的。您正在执行以下操作:

Get the new string from the textfield
Add the new string into ArrayList
Sort the List
Add the last String from the List to the output

但是,最后一个字符串不是新字符串。
这就是我认为你应该做的:

Get the new string
Add the new string into the list
Sort this list
Clear the txtAreaOutput
Print the whole List into the textAreaOutput again.


 private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       
strArray.add(this.txtInputName.getText());
System.out.println(strArray);
Collections.sort(strArray);
this.txtAreaOutput.setText("");
for(int i = 0; i < strArray.size(); i++){
this.txtAreaOutput.append("\n" + strArray.get(i));
}
}

关于java - 如何使用 Collections.sort() 使我的数组按字母顺序排序? -Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31553606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com