按字母顺序获取对象的java集合

Mic*_*abe 4 java collections jsp arraylist

我有一个问题,我真的不知道从哪里开始.所以我想我会问这里.

基本上,我有一个名字下拉.我希望这些名称按字母顺序排列.

填充下拉的过程如下:

我查询数据库并下拉Id和Name,创建一个名为"UserList"的对象,并使用我得到的内容设置名称和id变量.然后我将此对象添加到ArrayList.我一遍又一遍地这样做.

然后我将此集合转换为数组,并使用它将其传递给我的JSP页面

session.setAttribute("userList", UserList);
Run Code Online (Sandbox Code Playgroud)

然后我填充下拉列表如下.

<c:forEach items="${userList}" var="c" >
`<html-el:option value="${c.id}"><c:out value="${c.name}"/></html-el:option> </c:forEach>
Run Code Online (Sandbox Code Playgroud)

可能有一个简单的答案,但我如何对这些名称进行排序?

Jac*_*ack 8

您通常通过public static Collections.sort(List<T> list)使用您ArrayList的参数调用来执行此Comparable操作,但请注意实现该接口,否则它将无法工作(如果它们Strings已经实现):

Collections.sort(yourList);
Run Code Online (Sandbox Code Playgroud)

否则,如果您有一个自定义类,但是您想要对某个字符串字段进行排序,则可以委派该compareTo方法:

public class User implements Comparable<User> {
   public int compareTo(User other) {
      return userName.compareTo(other.userName);
   }
}
Run Code Online (Sandbox Code Playgroud)

最后,如果没有你的情况只是滚动你自己的compareTo方法,它应该返回-1,0或者1如果调用对象小于,等于或大于传递的方法.