主要是遇到浮点数中出现无意义的数时候的处理情况:
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 Util)是Java开发中不可或缺的一部分,它为开发者提供了大量便捷的功能,极大地提高了开发效率。在Java标准库中,`java.util`包是核心工具类库,包含了各种容器类、集合框架、日期时间处理、随机数...
15. **`java.util.PriorityQueue`**:优先队列,内部实现为堆,可以自动维护元素的排序。 以上仅是部分可能包含的工具类,实际压缩包中还可能涵盖其他如并发控制、网络编程、XML处理、加密解密、国际化等更多Java...
Java.util包是Java标准库中的核心包之一,它包含了大量用于通用编程的类和接口,是Java开发中不可或缺的一部分。这个包提供了数据结构、集合框架、事件处理、日期时间、随机数生成、位集以及与I/O流操作相关的辅助...
虽然Java没有传统意义上的指针,但在底层实现中仍然使用类似指针的概念来引用对象。这种指针对程序员是不可见的,由JVM管理和操作。 #### 二十三、值传递与引用传递 Java中实际上采用的是引用传递的方式。对于基本...
Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...
Java编程语言中有许多工具类库,它们为开发者提供了丰富的功能,极大地提高了开发效率。这些工具类通常包含了各种实用方法,可以处理字符串、集合、日期时间、数学计算等常见任务。以下是一些Java中常见的工具类及其...
13. **Optional**: Java 8引入的类,用于表示可能为null的值,避免空指针异常。 14. **Stream**: Java 8的新特性,提供了一种新的数据处理方式,可以对集合进行函数式编程。 在你提供的压缩包`ZycUtil`中,可能...
一种可能的方法是将HashMap的键(即随机数)及其对应的值(权重)转换为List,然后根据权重进行排序,或者使用TreeMap来自动排序键。 标签“源码”和“工具”暗示了这是一个关于理解和使用代码的实例,可能包含...
在Java中,`java.math`包提供了大整数和大浮点数的处理,而`java.text.DecimalFormat`用于格式化数字。 7. **RegexUtil**:正则表达式工具类,用于匹配、查找、替换符合特定模式的文本。Java的`java.util.regex`包...
在Java学习过程中,有几个核心知识点是必须理解和掌握的。首先,我们要关注数值类型。...以上是Java学习中的关键点,理解并掌握这些内容将为你打下坚实的基础,进一步深入学习Java的高级特性和框架将更加得心应手。
2. **`java.util.Collections`**:这个类是针对集合框架的工具类,提供了对List、Set、Map等各种集合进行操作的方法,如排序、反转、填充、查找、拷贝等。例如,`Collections.sort()`可以对List进行排序,而`...
11. **浮点数定义**:在Java中,float类型的定义需要在数字后面加上"f"或"F",因此选项D是正确的。 12. **主键与唯一索引**: - 主键是表中的唯一标识,通常是聚集索引,每个表只能有一个。 - 唯一索引不允许有...
14. **排序算法**:Java中常见的排序算法有冒泡排序、选择排序、插入排序、快速排序和归并排序。 15. **Servlet生命周期**:包括加载和初始化、服务、销毁三个阶段。 16. **垃圾回收**:Java自动进行垃圾回收,...
在Java开发过程中,工具类(Utility Class)是程序员经常使用的代码模块,它们提供了一系列静态方法,帮助开发者执行常见的任务,从而提高代码的可重用性和效率。这些工具类涵盖了许多领域,包括集合处理、字符串...
根据提供的文档内容,我们可以归纳总结出一系列重要的Java知识点,这些知识点不仅对于准备Java面试非常有用,也是Java开发者必备的基础知识。接下来,我们将按照文档中提到的主题进行详细解释。 ### Java面向对象 ...
“半斤”可能是指重量或数量的平衡,这可能涉及到Java中的集合框架,如`List`、`Set`和`Map`,以及它们的平衡树实现如`TreeSet`和`TreeMap`,这些数据结构在插入和查找操作时保持平衡,确保高效性能。 ### 谜题 10...
Java是广泛使用的编程语言,尤其在企业级应用和面试中占据重要地位。了解Java的核心概念和技术对于求职者至关重要。以下是一些Java面试中常见的知识点详解: 1. **JDK、JRE、JVM的区别** - **JDK**(Java ...
在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法通常用于执行特定的、重复的任务,以提高代码的重用性和效率。这些工具类不依赖于实例化,而是通过调用静态方法来提供服务。下面我们将...
在Java编程语言中,工具类(Utility Classes)是那些提供了静态方法或常量,用于执行特定任务或提供通用功能的类。这些类通常被设计为不可实例化,以确保其功能只能通过静态调用来访问。Java标准库(Java Standard ...