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

发布时间:2022-11-19

本文目录一览:

  1. java容器使用
  2. 在JAVA中怎么比较Double类型数据的大小
  3. java biginteger怎么比较大小

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