vector中放的是String类型,内容有数字,英文,也有汉字,有什么办法按首字排序啊?

yanjingrong 2014-11-08 10:20:48
vector中放的是String类型,内容有数字,英文,也有汉字,有什么办法按首字排序啊?
这个需要什么算法或者工具啊?

例如 vector中:

12
safe
paper
zombie
鼠标
键盘

....
怎么能排序成:(首字排序)
12
paper
safe
zombie
键盘
鼠标
...全文
306 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony4geek 2014-11-10
  • 打赏
  • 举报
回复
自己写 方法了。。自己定义排序的规则。Comparable
yanjingrong 2014-11-08
  • 打赏
  • 举报
回复
谢谢,我一会儿试试
姜小白- 2014-11-08
  • 打赏
  • 举报
回复
将vector 的数据添加到list中,然后使用Collections 的 sort方法试试 sort public static <T extends Comparable<? super T>> void sort(List<T> list)根据元素的自然顺序 对指定列表按升序进行排序。 列表中的所有元素都必须实现 Comparable 接口。此外,列表中的所有元素都必须是可相互比较的 (也就是说,对于列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。 此排序方法具有稳定性:不会因调用 sort 方法而对相等的元素进行重新排序。 指定列表必须是可修改的,但不必是大小可调整的。 该排序算法是一个经过修改的合并排序算法(其中,如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。 此算法提供可保证的 n log(n) 性能。 此实现将指定列表转储到一个数组中,并对数组进行排序,在重置数组中相应位置处每个 元素的列表上进行迭代。这避免了由于试图原地对链接列表进行排序而产生的 n2 log(n) 性能。 参数: list - 要排序的列表。 抛出: ClassCastException - 如果列表包含不可相互比较 的元素(例如,字符串和整数)。 UnsupportedOperationException - 如果指定列表的列表迭代器不支持 set 操作。 另请参见: Comparable
wyc_ 2014-11-08
  • 打赏
  • 举报
回复
import java.util.*; public class SortString { public static void main(String[]args){ LinkedList<String> list = new LinkedList<String>(); list.add("12"); list.add("safe"); list.add("paper"); list.add("zombie"); list.add("鼠标"); list.add("键盘"); Collections.sort(list,new Comparator<Object>(){ public int compare(Object o1,Object o2){ String str1 = (String)o1; String str2 = (String)o2; return str1.compareTo(str2); } }); for(String o:list){ System.out.println(o); } } }

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧