如何在不使用集合的情况下按字母顺序对ArrayList进行排序?

时间:2015-04-29 14:28:50

标签: java sorting arraylist

我有以下代码,它采用名称并将它们存储在ArrayList中。

class Main{
  public static void main(String[] args) {
    ArrayList<String> names = new ArrayList<String>();
    Scanner scan = new Scanner(System.in);
    String name;
    do{
      System.out.println("Enter the next name: ");
      name = scan.nextLine();
      String toUpperCase = titleCase(name);
      if(!toUpperCase.equals("Stop")){
        names.add(toUpperCase);
      }
    } while(!name.equalsIgnoreCase("STOP"));

    System.out.println(names);


  }
  public static String titleCase(String s){
    String output = s.substring(0, 1).toUpperCase() +     s.substring(1).toLowerCase();
    return output;
  }

}

我需要按名称的字母顺序对ArrayList进行排序,而不使用Collections。

2 个答案:

答案 0 :(得分:0)

在Java 8中,你可以做到

list.sort(String::compareTo);

我认为这是家庭作业,你必须自己实施一个排序算法。您使用哪种排序取决于设置任务所需的人员。

BTW你可以使用bogo sort

while(!isSorted(list)) {
    Collection.shuffle(list);
}

答案 1 :(得分:0)

ActionListener类实现public void actionPerformed(ActionEvent e) { JButton button = (JButton)e.getSource(); color = button.getBackground(); repaint(); } 。因此,您可以使用其String方法检查是否有任何两个字符串。冒泡排序是最低效但可能是最简单的排序算法之一。

所以在伪代码中,这看起来像是:

Comparable<String>