java - 按字典顺序排列字符串

标签 java arraylist

这是我的作业,我不知道如何继续。输出仅打印我的前四位老师,我不知道为什么它不打印我的最后三位老师。谢谢!

  1. 创建一个名为 Teachers 的 ArrayList。仅按照您在白天看到老师的姓氏的顺序填写 ArrayList(第 1 节:Jensen,第 2 节:Houge,第 3 节:……等)您只需将老师的姓氏放入 ArrayList 中,因此它将打印 [Jensen、Houge 等...]。)使用 print 方法打印 ArrayList。

  2. 编写一个方法,接受您的老师的 ArrayList,并从中创建一个名为 ordered 的新 ArrayList,其中您老师的姓名现在按字典顺序排列。打印结果 ArrayList。 (不要更改原来的数组列表,创建一个新的!)


import java.util.ArrayList;
public class LexicographicOrdering
{
   public static void main (String [] args){
        ArrayList<String> teachers = new ArrayList<String>();
        teachers.add("Turnbow");
        teachers.add("Dyvig");
        teachers.add("Williams");
        teachers.add("Houge");
        teachers.add("Allaire");
        teachers.add("Violette");
        teachers.add("Dorgan");
        System.out.println(teachers);
        order(teachers);
   }
    public static void order(ArrayList<String> teachers ){
        ArrayList<String> ordered = new ArrayList<String>();
        for(int i = 0; i < teachers.size(); i++){
            String str = teachers.get(i);
            for(int j = 1; j < teachers.size(); j++){
                if(str.compareTo(teachers.get(j)) > 0){
                    str = teachers.get(j);
                }
            }
            ordered.add(str);
            teachers.remove(str);
        }
        System.out.print(ordered);
   }
}

最佳答案

所以这里的问题在于你的静态订单方法。正如 Karl 上面所建议的,您希望将该方法分成两个独立的部分。第一个将创建一个名为“ordered”的 ArrayList,然后用“teachers”数组中包含的数据填充它。

    ArrayList<String> ordered = new ArrayList(); //the second <String> is not required
    for(int i = 0; i < teachers.size(); i++){
       String str = teachers.get(i);
       ordered.add(str);
    }

下一个目标是按字母顺序对数组进行排序,这可以使用 java.util 包中包含的 Collections.sort(ArrayList) 方法来实现。

    Collections.sort(ordered);

现在您需要打印 ArrayList。

    System.out.println(ordered);

由于这是一项家庭作业,我建议阅读 Collections.sort() 方法及其示例。快速谷歌搜索找到了以下网站:http://beginnersbook.com/2013/12/how-to-sort-arraylist-in-java/

此外,我建议阅读 Collection 类的 API。 https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#sort-java.util.List-

编辑: 快速浏览一下,我认为您的字符串删除最后 3 个名称的原因是您在查看列表中的每个位置时从列表中删除了项目。本质上,您正在查看列表中的所有其他项目,因此。

关于java - 按字典顺序排列字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329592/

相关文章:

Android ArrayList TextView 在 setText 后不显示文本

java - 一致性和容器管理的事务

java - 并发请求的 repo 类线程安全吗? - Spring Boot

java - 如何从数组的 ArrayList 转换为数组的数组

java - 使用不区分大小写的比较来计算数组列表中字符串的出现次数

java - 如何从java中的url数组列表中获取主机站点列表和该主机的每个实例?

java - 如何找出匹配器的状态?

java - 如何将applicationContext中加载的spring bean转换为接口(interface)?

java - 将许多文件与 Java 中的许多模式匹配

java - arraylistS 的 arraylist 中的 arraylistS 的行为类似于同一个实例,尽管有 "new Arraylist<MyObj>()"