首页 > 编程知识 正文

java容器之大小比较,java容器类型

时间:2023-12-27 22:27:07 阅读:325482 作者:DNDR

本文目录一览:

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。