`
chencang
  • 浏览: 421993 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java map中含值为无意义浮点数的排序

    博客分类:
  • Java
阅读更多

主要是遇到浮点数中出现无意义的数时候的处理情况:

public static void main(String args[]) {
		Map<String, Float> map = new HashMap<String, Float>();

		map.put("a", 1073.8256f);
		map.put("b", 16.360186f);
		map.put("c", 803.6707f);
		map.put("d", 1164.1406f);
		map.put("e", Float.NaN); // Float.NaN表示无意义的浮点数

		List<Map.Entry<String, Float>> mapid = new ArrayList<Map.Entry<String, Float>>(
				map.entrySet());
		// 排序前
		for (int i = 0; i < mapid.size(); i++) {
			String id = mapid.get(i).toString();
			System.out.println(id);
		}
		System.out.println("");
		// 排序
		Collections.sort(mapid, new Comparator<Map.Entry<String, Float>>() {
			public int compare(Map.Entry<String, Float> o1,
					Map.Entry<String, Float> o2) {
				float v1 = o1.getValue();
				float v2 = o2.getValue();
				if (String.valueOf(v1).equals("NaN"))
					return 1;
				if (String.valueOf(v2).equals("NaN"))
					return -1;
				if ((v1 - v2) > 0)
					return -1;
				if ((v1 - v2) < 0)
					return 1;
				return 0;
				// return ((o2.getValue() - o1.getValue())>0 )? 1 : -1;
			}
		});
		// 排序后
		for (int i = 0; i < mapid.size(); i++) {
			String id = mapid.get(i).toString();
			System.out.println(id);
		}
	}

 结果:

d=1164.1406
e=NaN
b=16.360186
c=803.6707
a=1073.8256

d=1164.1406
a=1073.8256
c=803.6707
b=16.360186
e=NaN

分享到:
评论

相关推荐

    java工具类 java开发助手 java util

    Java工具类(Java Util)是Java开发中不可或缺的一部分,它为开发者提供了大量便捷的功能,极大地提高了开发效率。在Java标准库中,`java.util`包是核心工具类库,包含了各种容器类、集合框架、日期时间处理、随机数...

    Java常用工具类大全,工作5年精心整理.zip

    15. **`java.util.PriorityQueue`**:优先队列,内部实现为堆,可以自动维护元素的排序。 以上仅是部分可能包含的工具类,实际压缩包中还可能涵盖其他如并发控制、网络编程、XML处理、加密解密、国际化等更多Java...

    java.util包

    Java.util包是Java标准库中的核心包之一,它包含了大量用于通用编程的类和接口,是Java开发中不可或缺的一部分。这个包提供了数据结构、集合框架、事件处理、日期时间、随机数生成、位集以及与I/O流操作相关的辅助...

    java考试复习资料

    虽然Java没有传统意义上的指针,但在底层实现中仍然使用类似指针的概念来引用对象。这种指针对程序员是不可见的,由JVM管理和操作。 #### 二十三、值传递与引用传递 Java中实际上采用的是引用传递的方式。对于基本...

    java 常用工具类

    Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...

    28个java常用的工具类源码

    Java编程语言中有许多工具类库,它们为开发者提供了丰富的功能,极大地提高了开发效率。这些工具类通常包含了各种实用方法,可以处理字符串、集合、日期时间、数学计算等常见任务。以下是一些Java中常见的工具类及其...

    Java常用Util类

    13. **Optional**: Java 8引入的类,用于表示可能为null的值,避免空指针异常。 14. **Stream**: Java 8的新特性,提供了一种新的数据处理方式,可以对集合进行函数式编程。 在你提供的压缩包`ZycUtil`中,可能...

    自己写的一个随机数的例子,采用hashmap排序

    一种可能的方法是将HashMap的键(即随机数)及其对应的值(权重)转换为List,然后根据权重进行排序,或者使用TreeMap来自动排序键。 标签“源码”和“工具”暗示了这是一个关于理解和使用代码的实例,可能包含...

    27个java工具类

    在Java中,`java.math`包提供了大整数和大浮点数的处理,而`java.text.DecimalFormat`用于格式化数字。 7. **RegexUtil**:正则表达式工具类,用于匹配、查找、替换符合特定模式的文本。Java的`java.util.regex`包...

    Java学习过程中应该理解的一些重点内容

    在Java学习过程中,有几个核心知识点是必须理解和掌握的。首先,我们要关注数值类型。...以上是Java学习中的关键点,理解并掌握这些内容将为你打下坚实的基础,进一步深入学习Java的高级特性和框架将更加得心应手。

    Java常用工具类,多年工作积累整理

    2. **`java.util.Collections`**:这个类是针对集合框架的工具类,提供了对List、Set、Map等各种集合进行操作的方法,如排序、反转、填充、查找、拷贝等。例如,`Collections.sort()`可以对List进行排序,而`...

    最新java面试题

    11. **浮点数定义**:在Java中,float类型的定义需要在数字后面加上"f"或"F",因此选项D是正确的。 12. **主键与唯一索引**: - 主键是表中的唯一标识,通常是聚集索引,每个表只能有一个。 - 唯一索引不允许有...

    Java经典理论面试100题.pdf

    14. **排序算法**:Java中常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序。 15. **Servlet生命周期**:包括加载和初始化、服务、销毁三个阶段。 16. **垃圾回收**:Java自动进行垃圾回收,...

    java开发过程中常用的工具类

    在Java开发过程中,工具类(Utility Class)是程序员经常使用的代码模块,它们提供了一系列静态方法,帮助开发者执行常见的任务,从而提高代码的可重用性和效率。这些工具类涵盖了许多领域,包括集合处理、字符串...

    java综合面试题.pdf

    根据提供的文档内容,我们可以归纳总结出一系列重要的Java知识点,这些知识点不仅对于准备Java面试非常有用,也是Java开发者必备的基础知识。接下来,我们将按照文档中提到的主题进行详细解释。 ### Java面向对象 ...

    java解惑很全的题目

    “半斤”可能是指重量或数量的平衡,这可能涉及到Java中的集合框架,如`List`、`Set`和`Map`,以及它们的平衡树实现如`TreeSet`和`TreeMap`,这些数据结构在插入和查找操作时保持平衡,确保高效性能。 ### 谜题 10...

    Java面试资料,一套带走

    Java是广泛使用的编程语言,尤其在企业级应用和面试中占据重要地位。了解Java的核心概念和技术对于求职者至关重要。以下是一些Java面试中常见的知识点详解: 1. **JDK、JRE、JVM的区别** - **JDK**(Java ...

    JAVA开发常用工具类

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法通常用于执行特定的、重复的任务,以提高代码的重用性和效率。这些工具类不依赖于实例化,而是通过调用静态方法来提供服务。下面我们将...

    java常用工具类

    在Java编程语言中,工具类(Utility Classes)是那些提供了静态方法或常量,用于执行特定任务或提供通用功能的类。这些类通常被设计为不可实例化,以确保其功能只能通过静态调用来访问。Java标准库(Java Standard ...

Global site tag (gtag.js) - Google Analytics