当前位置: 首页 > news >正文

2、数组、Map+HashMap、Set+Hashset、Char和Character类、String类和Char类、Math类

数组

\\一个普通的长度为1的整数数组
Integer[] arr= new Integer[1];\\一个普通长度为1的同时元素初始化为1的整数数组。
Integer[] arr= new Integer[]{1};\\一个长度为0的空数组
Integer[] arr= new Integer[0];

Map

常见方法

  • void clear( )
    从此映射中移除所有映射关系(可选操作)。

  • boolean containsKey(Object k)
    如果此映射包含指定键的映射关系,则返回 true。

  • boolean containsValue(Object v)
    如果此映射将一个或多个键映射到指定值,则返回 true。

  • Object get(Object k)
    返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

  • boolean isEmpty( )
    如果此映射未包含键-值映射关系,则返回 true。

  • Object put(Object k, Object v)
    将指定的值与此映射中的指定键关联(可选操作)。

  • Object remove(Object k)
    如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

  • int size( )
    返回此映射中的键-值映射关系数。

  • getOrDefault(Object key, V defaultValue)
    返回指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。
    所以注意默认值不可以是接口,他需要是个可以实例化的类。
    譬如不可以是map.getOrDefault(str,new List<String>());
    而一定要是map.getOrDefault(str,new ArrayList<String>());
    因为List<>()是一个接口,不可以被实例化。而ArrayList可以被实例化。

常见异常

  • 当访问的值不存在的时候,方法就会抛出一个 NoSuchElementException 异常。
  • 当对象的类型和 Map 里元素类型不兼容的时候,就会抛出一个 ClassCastException 异常。
  • 当在不允许使用 Null 对象的 Map 中使用 Null 对象,会抛出一个 NullPointerException 异常。
import java.util.Map;
\\创建一个含有1-2对应映射关系的Map
Map<Integer,Integer>map = Map.of(1,2);

HashMap

HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
HashMap 是无序的,即不会记录插入的顺序。

import java.util.HashMap;\\定义一个有一个元素的HashMap
Map<Integer,Integer>map = new HashMap<>(1);\\定义一个不定元素的HashMap
Map<Integer,Integer>map = new HashMap<>();

常见数据结构

哈希表

Set

  • void add(Object k)
    添加k

  • boolean contains(Object k)
    如果map中包含k,则返回true。

HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合
HashSet 允许有 null 值。
HashSet 是无序的,即不会记录插入的顺序。
HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
HashSet 实现了 Set 接口。

import java.util.HashSet; // 引入 HashSet 类//实例化途径一
HashSet<String> sites = new HashSet<String>();//实例化途径二
HashSet<String> sites = new HashSet<>();//实例化途径三,注意这样实例化需要同时引入Set包
Set<String> sites = new HashSet();

Char和Character类

//用内置数据类型定义一个字符
char ch = 'a';//用包装类定义一个字符类对象
Character ch = new Character('a');

拆箱和装箱

将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱。

Character类常用方法

  1. isLetter()
    是否是一个字母
  2. isDigit()
    是否是一个数字字符
  3. isWhitespace()
    是否是一个空白字符
  4. isUpperCase()
    是否是大写字母
  5. isLowerCase()
    是否是小写字母
  6. toUpperCase()
    指定字母的大写形式
  7. toLowerCase()
    指定字母的小写形式
  8. toString()
    返回字符的字符串形式,字符串的长度仅为1

String类和Char类(toCharArray)

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

String s = "sab";
char[] ca = s.toCharArray();
Arrays.sort(ca);

Math

提供了Math.max(Object a1, Object a2);
Math.min(Object a1, Object a2);

http://www.lryc.cn/news/224228.html

相关文章:

  • ESP8266 WiFi模块快速入门指南
  • 微信小程序将后端返回的图片文件流解析显示到页面
  • 网络基础(1)
  • flink的AggregateFunction,merge方法作用范围
  • Day25力扣打卡
  • SpringCloud - OpenFeign 参数传递和响应处理(全网最详细)
  • Postgresql数据类型-布尔类型
  • SPASS-交叉表分析
  • 用Python的requests库来模拟爬取地图商铺信息
  • 使用EvoMap/Three.js模拟无人机灯光秀
  • 11.9存储器实验总结(单ram,双ram,FIFO)
  • linux(ubuntu)安装并使用scrcpy
  • linux rsyslog安装配置
  • 美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens
  • 树莓派4B的测试记录(CPU、FFMPEG)
  • 物联网AI MicroPython学习之语法 二进制与ASCII转换
  • 学之思项目的搭建部署 打jar包失败的解决方法
  • [100天算法】-定长子串中元音的最大数目(day 67)
  • Elastic Observability 8.11:ES|QL、APM 中的通用分析和增强的 SLOs
  • TexGen简单模型对应inp文件简单梳理-2
  • VUE获取当前日期的周日和周六
  • K8S篇之k8s containerd模式fail to pull image certificate signed by unknown authority
  • 算法进阶指南图论 最优贸易
  • 【Android】Debug时禁用主线程ANR限制
  • P6入门:项目初始化1-项目详情介绍
  • 进行 “最佳价格查询器” 的开发
  • Brain Teaser概率类 - 三局两胜制
  • 在现实生活中传感器GV-H130/GV-21的使用
  • 海康Visionmaster-全局脚本:通过通讯触发快速匹配 模块换型的方法
  • 什么是闭包