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

本文目录一览:

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

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/297644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相关推荐

  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • int类型变量的细节与注意事项

    本文将从 int 类型变量的定义、声明、初始化、范围、运算和类型转换等方面,对 int 类型变量进行详细阐述和讲解,帮助读者更好地掌握和应用 int 变量。 一、定义与声明 int…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29

发表回复

登录后才能评论