首先是HashMap:
HashMap map = new HashMap();
map.put(5,"0201");
map.put(4,"01");
map.put(3,"0304");
map.put(8,"0101");
Object[] key = map.keyset().toArray();
Arrays.sort(key);
for (int i = 0; i < key.length; i++) {
System.out.println(map.get(key[i]));
}
HashMap能够根据Key的大小对MAP中的东西进行排序,但是问题在于,因为是Hash表,所以当key值有重叠的时候,排序之后输出的东西并不完全,每个key只能输出对应的一个value,这点使得hashmap并不是万能的排序。
然后是List,这个比较简单,然后也比较万能
首先定义一个类:
public class Person{
String name;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2:Mycomparator.java
//实现Comparator接口,也就是定义排序规则,你几乎可以定义任何规则
package com.infoearth;
import java.util.*;
public class Mycomparator implements Comparator{
public int compare(Object o1,Object o2) {
Person p1=(Person)o1;
Person p2=(Person)o2;
if(p1.age<p2.age)
return 1;
else
return 0;
}
}
3:ListSort.java
package com.infoearth;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ListSort {
public static void main(String[] args){
ArrayList list = new ArrayList();
list.add(new Person("lcl",28));
list.add(new Person("fx",23));
list.add(new Person("wqx",29));
Comparator comp = new Mycomparator();
Collections.sort(list,comp);
for(int i = 0;i<list.size();i++){
Person p = (Person)list.get(i);
System.out.println(p.getName());
}
}
分享到:
相关推荐
### HashMap排序方法详解 在Java开发中,`HashMap`是一种非常常见的数据结构,它通过键值对的形式存储数据。然而,由于`HashMap`是基于哈希表实现的,所以它并不能保证元素的顺序。这就意味着如果需要按照某种特定...
更通用的方法是将HashMap的键值对转化为List,然后使用Collections.sort()方法进行排序。这里可以自定义比较器Comparator来决定排序规则,比如按照key的数值大小排序。 **3. 示例代码** 以下是一个使用Collections...
List, Integer>> sortedEntries = new ArrayList(hashMap.entrySet()); Collections.sort(sortedEntries, (e1, e2) -> valueComparator.compare(e1.getValue(), e2.getValue())); // 输出排序后的键值对 for ...
在Java编程中,"list集合树状排序"是一种常见的需求,特别是在处理前端展示的数据时,如使用jQuery的treetable插件。这个场景通常涉及到数据结构的组织和排序,以便前端能够按照树形结构正确地展示层级关系。下面将...
HashMap排序是数据结构与算法中常见的一种排序算法。本文即以Android平台为例来实现该算法。 具体代码如下: public static void main(String[] args) { Map<String> map = new HashMap(); map.put(lisi, 5); ...
在Java中,要对HashMap进行排序,首先需要得到HashMap中的包含映射关系的视图(entrySet),然后将其转换为List,接着使用List.sort()或Collections.sort()进行排序。下面是示例代码: List, Integer>> list = new ...
一种可能的方法是将HashMap的键(即随机数)及其对应的值(权重)转换为List,然后根据权重进行排序,或者使用TreeMap来自动排序键。 标签“源码”和“工具”暗示了这是一个关于理解和使用代码的实例,可能包含...
在Java应用中,Aviator 特别适合用于数据分析和处理,例如对 List 中的数据进行求和、排序、找出最大值和最小值等操作。在给定的“aviator 实现 List 的求和、排序、最大、最小值”的主题中,我们将深入探讨如何利用...
为了实现排名,我们需要将HashMap转换为List,并根据值(分数)进行排序。这可以通过Java 8的Stream API实现: ```java List, Integer>> sortedEntries = gameRanking.entrySet().stream() .sorted(Map.Entry....
对List集合进行排序 对集合中的某个属性进行排序
HashMap不保证元素的顺序,如果需要保持插入顺序或根据特定规则排序,应考虑使用LinkedHashMap。 ArrayList和HashMap的使用场景有所不同。ArrayList适合于需要频繁进行随机访问且元素顺序重要的情况,比如作为数据...
6. 使用接口而非实现类:在声明变量时,使用Map而非HashMap,这样在实际运行时可以更灵活地更换其他类型的Map,如LinkedHashMap,以改变元素的排序或性能特性。 CacheManager.java文件可能是一个用于管理缓存的类,...
- 由于Map本身不支持直接排序,我们可以先将Map的Entry转换为List,然后使用Collections.sort()方法进行排序。这适用于任何Map实现,包括HashMap和TreeMap。 - 示例代码: ```java List, Integer>> list = new ...
HashMap默认不保证元素顺序,如果需要对HashMap进行排序,可以转换为List或使用LinkedHashMap。例如,将HashMap转换为List,然后使用Collections.sort()进行排序: ```java Map, String> unsortedMap = new HashMap...
如果HashMap的键类实现了Comparable接口,那么在进行某些操作,如流式操作(Stream API)的排序时,HashMap会自动使用这个比较规则。 例如,假设我们有一个Person类,它包含一个年龄字段并实现了Comparable接口: ...
在Java中,我们可以使用`Collections.sort()`方法对List对象进行排序,传入自定义的比较器Comparator来实现按字母顺序排序。例如: ```java Collections.sort(cityList, new Comparator() { @Override public int...
本次我们关注的是Java集合框架中的三类接口:List、Set和Map,以及如何实现它们的特定功能,特别是关于`TreeSet`和`TreeMap`的按值排序。标题中提到的“JCF(List、Set、Map)学习,实现了,value>按value排序”是一个...
本文主要探讨了几个关键的集合接口和实现类的底层源码,包括List、HashMap、HashSet等,以及它们的基本操作。 首先,Collection接口是所有单值集合的父接口,提供了增加、删除、遍历元素的基本方法。例如,`add()`...