-2

従業員クラスから読み込まれた姓のコレクションがあります。ソート後にソートされた名前の出力を整理することは可能ですか?コレクションから取得したコンマ「[Name1、Name2、Name3 ...]」で区切られた姓を持つ一般的な単一行の出力ではなく、コメントアウトした行と同様の出力が必要です。

 public void alpha1()
    {
     LinkedList<String> alphalist = new LinkedList<String>();
     ListIterator<Employee> iterate = list.listIterator(0);
    // System.out.println("First Name" + "\t" + "Last Name" + "\t" + "Salary");
     while (iterate.hasNext())
      {
           emp = iterate.next();

       alphalist.add(emp.getlastname());
      }
      Collections.sort(alphalist, new Comparator<String>() {
         @Override
         public int compare(String o1, String o2) {
             return Collator.getInstance().compare(o1, o2);
         }
     });
     System.out.println(alphalist);
    }
4

2 に答える 2

0

Comparatorオブジェクト上に作成しEmployee、元のコレクション自体を並べ替えた方がよいと思います。

コレクションが並べ替えられたら、Employeeオブジェクト自体を使用してコレクションを繰り返し印刷します。

例えば

 public void alpha1()
   {
       Collections.sort(list, new Comparator<Employee>() {
        @Override
        public int compare(Employee o1, Employee o2) {
          return o1.getLastName().compareTo(o2.getLastName());
        }
      });

      ListIterator<Employee> iterate = list.listIterator();
      while (iterate.hasNext())
      {
        emp = iterate.next();
        System.out.println("First Name" + "\t" + "Last Name" + "\t" + "Salary");
      }
    }
于 2012-11-10T20:23:43.190 に答える
0

姓の文字列のリストを保存する代わりに、従業員オブジェクトを保存して名前で並べ替えるのがより良い方法です。

クラスに実装ComparableしてEmployee、自然ソートを定義できます。次に、alphalist従業員のリストを作成し、を使用して並べ替えますCollections.sort(alphalist)

public class Employee implements Comparable<Employee> {
    ...

    @Override
    public int compareTo(Employee emp) {
        return this.getLastName().compareTo(emp.getLastName());
    }
}

次に、新しいalpha1()方法:

public void alpha1() {
    LinkedList<Employee> alphalist = new LinkedList<Employee>();
    ListIterator<Employee> iterate = list.listIterator(0);
    while (iterate.hasNext()) {
        alphalist.add(iterate.next());
    }
    Collections.sort(alphalist);
    System.out.println(alphalist); 
}
于 2012-11-10T20:25:41.263 に答える