この記事の例は、Javaのリストオブジェクトの一般的な方法を示しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
データベースで検出されたリストリストでは、さまざまなフィールドがソートされたフィールドを使用して、データベースで再確認することです。データベースに問い合わせていない場合、最初に見つけたリストに直接並べ替えると、システムのパフォーマンスが改善されます。
最初に検出された結果がセッションに保存されている限り、リストをソートできます。一般に、リストのソートはcollections.sort(リスト)で使用できますが、リストにオブジェクトが含まれている場合、この方法はまだ不可能です。では、どのように整理しますか? userinfoオブジェクトがある場合、次のフィールドが含まれています。
private java.lang.integer userid。
したがって、UserIDをソートする必要があります。次の方法を使用できます。
collections.sort(list、new Comparator(){public int compare(object a、object b){int one =((order)a).getuserid(); int two =((order)b).getuserid(); one-two;}});
このようにして、userInfoリストの各フィールドをソートしたい場合、各フィールドに上記のようにセグメントによって書かれていますか?それは私たちが必要とする結果ではありません。プログラムを書くことはますます洗練されており、ますます冗長に書くことはできません。一般的な方法を書くことはできますか?答えはイエスですが、まず第一に、次の3つの質問を解決する必要があります。
1。一般的なタイプを使用できます。
2。比較などの一般的な比較方法であること。
3。一般的な方法や一般的な方法のようなパンウェイメソッドはありますか?
最初の問題は、すべてのタイプの継承方法があるため、2番目の問題を解決することができます。 3番目の問題には、必要なパンウェイ方法はありません。しかし、それを変更してgetMethodを使用して、メソッドを呼び出して動的にメソッドを取り出すことができます。コードは次のとおりです。
public class sortlist <e> {public void sort(list <e> list、final string method、final string sort){collections.sort(list、new comparator(){public int compare(o。bky a、object b){ int ret = 0 {(e)a)getmethod((e)b)。 equals(sort)//逆((((((((((((((e)))、null)).tring」()。比較((((e)a)、null).tring()); = m1.invoke((((e)a)、null).tring()。compareto(m2.invoke((e)b)、null).tring();} catch(nosuchmethodexception ne){system.out。 println(ne);} catch(Illegalaccessexception ie){system.out.println(ie);
上記のコードを見ると、上記の3つの問題を正常に解決し、上向きの順序を追加しましたか。コードには特定のオブジェクトとタイプはありません。汎用性があります。ユーザーIDのユーザーIDをソートする場合は、パラメーターの形式でメソッド名を渡すことができます。 :たとえば、「getuserid」という「」。以下のコードを使用してテストできます。
//test.javapackageテスト。 = new ArrayList <userinfo>(); 11)); list.add(new userinfo( "c"、formterer.parse( "" 1980-10-01 ");(" 1973-10-01 ")、11); system out.println( "-------元のシーケンス-------------------------------------------------------------------------------------------------- -------------------- "" ""); } // Universal Class Sortlist <userinfo> sortlist = new sortlist <userinfo>(); ----------------------------------------- "); for(userInfoユーザー:リスト) {system.out.println(user.tostring());} // username sortlist.sort( "getusername"、null); -------------------------------------------------------------- -------------------------------------------------------------- --- "););} // sortlist.sort(list、" getbithdatestr "、null); system.out.println(" ----------------------------------------------------- ------------------------------------- "); for(userInfoユーザー:リスト){ system.out.println(user.tostring());}}}
テスト結果は次のとおりです。
-------オリジナルシーケンス---------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- ---------------------- 10-01; 3 1980-111; -------- 2; -------------------------------------------------------------- -------------------------------------------------------------- ------------------------------- -01 1980-12-01;
注:日付の並べ替えは最初に形式によって変換されます。そうしないと、正しい結果はありません。
この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。