【问题标题】:Sorting an arraylist in Java language用 Java 语言对数组列表进行排序
【发布时间】:2010-03-13 17:38:23
【问题描述】:

我设置了一个数组列表。我也设置了输入指令,这样用户可以输入一个字符串,然后是一个整数,然后是一个字符串(名字、年龄和姓氏)。

我需要按姓氏对数组列表进行排序。我目前输入的代码都在main方法下:-

public static void main(String[] args) {
Name Name[] = new Name[50];
int count = 0;

for (int i=0; i<50; i++)
  NewName[i] = new Name();

//ADD NEW TO ARRAYLIST NAME
String FName = JOptionPane.showInputDialog("first name");
int age = Integer.parseInt(JOptionPane.showInputDialog("age"));
String LName = JOptionPane.showInputDialog("last name");
          NewName[count] = new Name(FName, age, LName);
count = count++;
}

//ITEMS SORT BY LAST NAME
//CODE FOR SORT GOES HERE

【问题讨论】:

  • java中变量名有小写字母的约定。
  • 您使用的是 Name 对象数组,实际上并未使用ArrayList
  • 排序取决于Name对象的实现。我只能提示您Arrays.sortCollections.sortComparator
  • 附注:count = count++;将计数增加... 0、零、nil、nought。计数=++计数;将计数增加 1. count++;将计数增加 1. count += 1;将计数增加 1。
  • 所以这不是一个数组列表?这只是一个数组?我尝试使用:- Arrays.sort(NewName); Collections.sort(NewName);而且两者都不起作用,编译器失败...

标签: java inputbox


【解决方案1】:

看看ComparableComparatorArrays.sortCollections.sort

import java.util.Arrays;


class Name implements Comparable<Name> {

    private String lastName;
    //Other fields

    public Name(String lastName){
        this.lastName = lastName;
    }

    public int compareTo(Name o) {
        //Null checks etc
        return lastName.compareTo(o.lastName);
    }
    public String getLastName(){
        return lastName;
    }
    //Getter and setter methods
}

public class Test{
    public static void main(String[] args) {
        Name[] arr = new Name[]{new Name("AAC"), new Name("AAD"), new Name("AAA"),new Name("ABC"), new Name("AADDE")};
        Arrays.sort(arr);
        for(Name nm:arr){
            System.out.println(nm.getLastName());
        }
    }
}

【讨论】:

  • 这里实际上不需要空检查(或者使用 instanceof 时)。
  • @Helper 方法 你指的是 compareTo 方法吗?实际上是,参数可以为null。
  • @sauguta 对不起,你说得对,我认为 String 的 compareTo() 方法会进行 null 检查。
【解决方案2】:

这并不意味着冒犯,但我建议您在继续使用 Swing 之前学习基础知识。

【讨论】:

  • 我认为 Helper 建议数组是基础。我倾向于同意。
猜你喜欢
  • 1970-01-01
  • 2013-05-11
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-09
  • 2013-07-09
相关资源
最近更新 更多