将字符串放入字典顺序

时间:2016-02-11 02:09:40

标签: java arraylist

这是我的任务,我不知道如何继续。输出只打印我的前四位老师,我不知道为什么它也不打印我的前三位老师。谢谢!

  1. 创建一个名为teachers的ArrayList。按照您在白天看到的顺序,使用您老师的最后一个名字填充ArrayList(第1期:Jensen,第2期:Houge,第3期:......等)您只需要将老师的姓氏放在ArrayList中,所以它会打印[Jensen,Houge等...]。)使用打印方法打印ArrayList。

  2. 编写一个方法,将您的教师ArrayList,并从中创建一个名为ordered的新ArrayList,其中您的教师姓名现在按字典顺序排列。打印生成的ArrayList。 (不要改变你的原始阵列,换一个新的!)


  3. 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);
       }
    }
    

2 个答案:

答案 0 :(得分:1)

所以这里的问题是你的静态订单方法。正如卡尔在上面所建议的那样,你想把这个方法分成两个独立的部分。第一个将创建一个名为&#39; ordered&#39;然后用“教师”中包含的数据填写它。阵列。

    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个名称的原因是由于您在查看列表中的每个位置时从列表中删除项目。基本上,您正在查看列表中的所有其他项目。

答案 1 :(得分:0)

所以我明白了!我只需要将第一个for循环设置回零。这是新代码:

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);  
                }
            }
            i =- 1;
            ordered.add(str);
            teachers.remove(str);
        }
        System.out.print(ordered);
   }
}