java String 数组 中文如何排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java String 数组 中文如何排序相关的知识,希望对你有一定的参考价值。

public static void main(String[] args) throws Exception 
List<String> list = new ArrayList<>();
String str[] = new String[]  "富川/f","清远/q", "三水/s", "北海/b", "防城港/f" ,"韶关/s", "深圳/s", "顺德/s", "阳江/y", "湛江/z",
"肇庆/z", "中山/z", "珠海/z";
for (String string : str) 
list.add(string);
System.out.println("1:" + string + "");

System.out.println("---------------------------");
Collator coll = Collator.getInstance(Locale.CHINESE);
Collections.sort(list, coll);

for (String string : list) 
System.out.println("2:" + string + "");

参考技术A 那要看你是按什么顺序排序。 参考技术B 插入排序,二分查找,快速排序 你想用哪种

java HashMap 排序 <String,Integer> 。如何排序? [复制]

【中文标题】java HashMap 排序 <String,Integer> 。如何排序? [复制]【英文标题】:java HashMap sorting <String,Integer> . How to sort it? [duplicate] 【发布时间】:2012-08-27 02:40:51 【问题描述】:

可能重复:How to sort a Map<Key, Value> on the values in Java?

在我的项目中,我采用了这样的 HashMap

HashMap 度数 = new HashMap();

假设我有:

degree.put("a",5);
degree.put("b",2);
degree.put("c",4);
degree.put("d",2);
degree.put("e",3);
degree.put("f",5);

现在我必须根据给定的整数值对该列表进行排序

排序后的 HashMap 应该是:

a=5, f=5, c=4, e=4, b=4, d=2

我该怎么做?

【问题讨论】:

在我看来,根据整数值排序的原始 HashMap 实际上就像 a = 5, f = 5, c = 4, e = 3, b = 2, d = 2 . 看看***.com/questions/109383/… 【参考方案1】:
ArrayList<Integer> sortedHashMap=new ArrayList<Integer>();

for("your Object" m : degree.values())

      sortedHashMap.add(m);


collections.sort(sortedHashMap);

所以,你可以将你的 hashMap 打印为 sorted hashMap!

【讨论】:

【参考方案2】:

HashMap 是一个 无序 集合。它没有排序顺序。即使是 TreeMap 也会按键排序,而不是按值排序。

如果您想按值的排序顺序准备一个排序列表,您必须创建一个适当的对象,例如 ArrayList&lt;Map.Entry&lt;String,Integer&gt;&gt;,遍历您的 HashMap 并插入所有条目,然后使用排序功能调用Collections.sort

【讨论】:

【参考方案3】:

您可以使用insertion sort 从原始哈希图构建一个新的哈希图(占用 x2 内存并且效率非常低)。因此,您将需要使用哈希图的 .get() 和 .set() 方法几乎 n*n(最坏情况)次,其中 n 是元素的数量。

【讨论】:

【参考方案4】:

如果你想要排序地图,HashMap 不是最好的方法。

我建议查看TreeMap,因为它已排序。您可以设置比较器来比较值而不是键,就像在此答案中所做的那样:

https://***.com/a/1283722/975959

【讨论】:

如果它正在查看值,最好不要计划在该 TreeMap 上调用 .get()。

以上是关于java String 数组 中文如何排序的主要内容,如果未能解决你的问题,请参考以下文章

我如何对在java中格式化为高度的字符串数组列表进行排序?

Java中数组的ArrayList排序

Java实现数组的中文排序

Java编程中怎样实现中文排序

Java怎样用数组创建对象,并对对象里的属性排序?

JAVA通过数组按首字母排序