本文目录一览:
java容器使用
Java的容器分别有list、map和set
list接口下:
一种是基本的ArrayList,其优点在于随机访问元素,
另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法,对顺序访问进行了优化,向List中间插入与删除的开销并不大.常用于有顺序的插入和删除,效率比较高
set接口:
HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。
TreeSet : 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。
LinkedHashSet : 具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
map接口:
Map : 维护“键值对”的关联性,使你可以通过“键”查找“值”
HashMap : Map基于散列表的实现。插入和查询“键值对”的开销是固定的。可以通过构造器设置容量capacity和负载因子load factor,以调整容器的性能。HashMap就是使用对象的hashCode()进行快速查询的。此方法能够显著提高性能。
LinkedHashMap : 类似于HashMap,但是迭代遍历它时,取得“键值对”的顺序是其插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一点。而在迭代访问时反而更快,因为它使用链表维护内部次序。
TreeMap : 基于红黑树数据结构的实现。查看“键”或“键值对”时,它们会被排序(次序由Comparabel或Comparator决定)。TreeMap的特点在于,你得到的结果是经过排序的。TreeMap是唯一的带有subMap()方法的Map,它可以返回一个子树。
在JAVA中怎么比较Double类型数据的大小
你如果是要普通比较直接用数学符号即可,指的在其jvm允许的范围内如果,你是要很准确的精度比较运算,由于精度问题,可能会有误差,建议使用BigDecimal类型!
//普通比较
Double obj1 = new Double("0.001");
Double obj2 = new Double("0.0011");
obj1.compareTo(obj2);
//精度准确比较
double a=obj1;
double b=obj2;
BigDecimal data1 = new BigDecimal(a);
BigDecimal data2 = new BigDecimal(b);
data1.compareTo(data2);
//该方法两种类都有
public int compareTo(BigDecimal val)
/*将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个 BigDecimal对象(如,2.0 和 2.00)被认为是相等的。相对六个 boolean 比较运算符 (, ==, , =, !=, =) 中每一个运算符的各个方法,优先提供此方法。
*参数:val - 将此 BigDecimal 与之比较的 BigDecimal。
*返回:当此 BigDecimal 在数字上小于、等于或大于 val 时,返回 -1、0 或 1。
*/
java biginteger怎么比较大小
compareTo方法来比较,小于则返回-1,等于则返回0,大于则返回1
BigInteger a1 = new BigInteger("1");
BigInteger a2 = new BigInteger("2");
a1.compareTo(a2);
下面的例子显示math.BigInteger.compareTo()方法的用法
package com.yiibai;import java.math.*;public class BigIntegerDemo {public static void main(String[] args) {
// create 2 BigInteger objects
BigInteger bi1, bi2;
bi1 = new BigInteger("6");
bi2 = new BigInteger("3");
// create int object
int res;
// compare bi1 with bi2
res = bi1.compareTo(bi2);
String str1 = "Both values are equal ";
String str2 = "First Value is greater ";
String str3 = "Second value is greater";
if( res == 0 )
System.out.println( str1 );
else if( res == 1 )
System.out.println( str2 );
else if( res == -1 )
System.out.println( str3 );
}}
让我们编译和运行上面的程序,这将产生以下结果:
First Value is greater