2012-08-07 93 views
0

我在表單中有兩個數組,如下所示,我使用jsp將數組的值顯示給用戶。排序顯示的結果而不合並兩個數組

Trip[] tripArray = new Trip[]; 
Route[] routeArray = new Route[]; 


Trip Class: 
public class Trip{ 
    private String name; 
    private String address; 
    private String job; 
} 

Route class: 
public class Route{ 
    private String myName; 
    private String myAddress; 
    private String myJob; 
} 

我的JSP文件:

<logic: notEmpty name="myForm" property="tripArray"> 
<logic:iterate id="data" name="myForm" property="tripArray" type="com.example.Trip"> 
    <td><bean:write name="data" property="name" /></td> 
    <td><bean:write name="data" property="address"/></td> 
    <td><bean:write name="data" property="job"/></td> 
</logic:iterate> 
</logic:notEmtpty> 

<logic: notEmpty name="myForm" property="routeArray"> 
<logic:iterate id="data" name="myForm" property="routeArray" type="com.example.Route"> 
    <td><bean:write name="data" property="myName" /></td> 
    <td><bean:write name="data" property="myAddress"/></td> 
    <td><bean:write name="data" property="myJob"/></td> 
</logic:iterate> 
</logic:notEmtpty> 

我希望能夠這就是所顯示的結果進行排序。由於我有兩個數組,我可以合併這兩個數組,對它進行排序並使用新的合併數組顯示結果。

但這需要我改變我的jsp文件。我相信這樣做太過於必要了。

有沒有另一種方法來做到這一點,而不必改變我的jsp文件,並沒有合併數組?

回答

1

使用Arrays.sort排序的數組:

String[] examples = new String[] {"test", "a", "long one", "", "one was blank (this is longest)"}; 
    Arrays.sort(examples, new Comparator<String>() { 

     @Override 
     public int compare(String arg0, String arg1) { 
      if(arg0.length() < arg1.length()) 
       return -1; 
      if(arg0.length() > arg1.length()) 
       return 1; 
      return 0; 
     } 

    }); 
    System.out.println(Arrays.toString(examples)); 

將使輸出:

[, a, test, long one, one was blank (this is longest)] 

我設置的比較有被設定爲先有最短的,最長的最後;儘管如此,您可以調整比較器。

+0

感謝您的回答,但我有兩個數組需要排序而不合並它們。可以這樣做嗎? – Susie 2012-08-07 17:39:05

+0

你是什麼意思?只要分別對他們分別..? – 2012-08-07 17:41:45

+0

分別對它們進行排序並在UI屏幕中顯示它們不會是排序結果。我想以某種方式顯示在UI中排序的兩個數組的值,而不合並數組。我希望這是有道理的 – Susie 2012-08-07 17:45:22

相關問題