文字列の配列リストをアルファベット順に並べ替えようとしています。簡単な方法からすべてを試しました。
List<String> theList = new ArrayList<String>();
theList.add("silex");theList.add("soliton");
theList.add("snake");theList.add("supracanon");
Collections.sort(theList);
もっとエキゾチックなものへ:
List<String> theList = new ArrayList<String>();
theList.add("silex");theList.add("soliton");
theList.add("snake");theList.add("supracanon");
Collections.sort(
theList,
new Comparator<String>()
{
public int compare(String lhs, String rhs)
{
return lhs.compareTo(rhs);
}
}
);
しかし、何も機能しません、私は何が間違っているのですか?ありがとう。
ps:次のように結果のArrayListのコンテンツを見ています:
for (String temp:listeProduitPredit){
System.out.println(temp);
}
リストの内容は、並べ替えプロセスの前後で変更されません。
================================================== ===========================わかりました、これは実際のコードです。データベースアクセスを行うEJBがあり、そのメソッドの1つが私を返します。文字列のリスト。
文字列のリストは、辞書のように(アルファベット順に)並べ替えられると想定されていますが、「Collections.sort(rList)」は何もしません(入力=出力)
public List<String> rechercherListeDeProduitCommencantPar(Integer gammeId, Integer familleId, String debutProduit) {
Criteria c = HibernateUtil.getSessionFactory().getCurrentSession().createCriteria(Produit.class, "p");
c.createAlias("p.famille", "f").createAlias("f.gamme", "g");
if (gammeId != null) {
c.add(Restrictions.eq("g.id", gammeId));
}
if (familleId != null) {
c.add(Restrictions.eq("f.id", familleId));
}
if (!debutProduit.equals("")) {
c.add(Restrictions.like("p.designation", debutProduit+"%"));
}
//getting only the interesting intels (product's name)
List<String> rList = new ArrayList<String>();
List<Produit> pList = c.list();
for (Produit p : pList){
rList.add(p.getDesignation());
}
Collections.sort(rList);
return rList;
}
これはJbossAS5.1サーバーで実行されており、前後のforを使用してテストしました。リストはアルファベット順にソートされていませんが、実際に少し変更されています。
18:44:07,961 INFO [STDOUT] Before=========
18:44:07,961 INFO [STDOUT] SUMO VIE
18:44:07,961 INFO [STDOUT] soliton
18:44:07,961 INFO [STDOUT] snake
18:44:07,961 INFO [STDOUT] SupraCanon
18:44:07,961 INFO [STDOUT] Segolene
18:44:07,961 INFO [STDOUT] silex
18:44:07,962 INFO [STDOUT] After=========
18:44:07,962 INFO [STDOUT] SUMO VIE
18:44:07,962 INFO [STDOUT] Segolene
18:44:07,962 INFO [STDOUT] SupraCanon
18:44:07,962 INFO [STDOUT] silex
18:44:07,962 INFO [STDOUT] snake
18:44:07,962 INFO [STDOUT] soliton