关于List,Map支持最大条数,以及String的最大长度

本文介绍了Java中各种数据类型的大小、范围及默认值,并详细分析了ArrayList与String的内部实现方式及其最大容量限制。
部署运行你感兴趣的模型镜像
数据类型 大小 范围 默认值

byte(字节) 8 -128 - 127 0
shot(短整型) 16 -32768 - 32768 0
int(整型) 32 -2147483648-2147483648 0
long(长整型) 64 -9233372036854477808-9233372036854477808 0
float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f
double(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
char(字符型) 16 ‘ \u0000 - u\ffff ’ ‘\u0000 ’
boolean(布尔型) 1 true/false false
查看JDK源代码
ArrayList实现依赖数组
HashMap实现依赖数组嵌套数组
一个Array的下标是一个int整形数字,所以理论上ArrayList的长度就是2的31次方
以此类推
在eclipse中可以验证
Object[] o = new Object[2147483647]; 正确
Object[] o = new Object[2147483648]; 错误
同理String的数据结构,其实是一个String的数组,那么String最长就是2的31次方长度
一个字符是16位,那么String的占的位数可以是16*2的31次方 (位)

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### JavaStringListMap 的常用方法 #### 1. **String 常用方法** `String` 是 Java 中最基础且常用的类之一,提供了丰富的字符串操作方法。 - `length()`:返回字符串的长度。 - `charAt(int index)`:获取指定索引位置的字符。 - `substring(int beginIndex, int endIndex)`:截取子字符串。 - `indexOf(String str)`:查找子字符串首次出现的位置。 - `contains(CharSequence s)`:判断是否包含某个字符序列。 - `split(String regex)`:根据正则表达式分割字符串。 - `toUpperCase()` / `toLowerCase()`:将字符串转换为大写或小写。 - `trim()`:去除字符串两端的空格。 - `replace(char oldChar, char newChar)`:替换字符。 - `equals(Object anObject)`:比较两个字符串内容是否相等。 ```java String str = "Hello World"; System.out.println(str.length()); // 输出 11 System.out.println(str.substring(0, 5)); // 输出 Hello System.out.println(str.contains("World")); // 输出 true ``` #### 2. **List 常用方法** `List` 是一个有序集合,允许存储重复元素,并支持通过索引访问。 - `add(E e)`:添加元素到列表末尾。 - `add(int index, E element)`:在指定位置插入元素。 - `get(int index)`:获取指定位置的元素。 - `set(int index, E element)`:替换指定位置的元素。 - `remove(int index)`:移除指定位置的元素。 - `size()`:返回列表中元素的数量。 - `isEmpty()`:判断列表是否为空。 - `clear()`:清空列表。 - `contains(Object o)`:判断是否包含某个元素。 - `indexOf(Object o)`:查找元素第一次出现的位置。 ```java List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); System.out.println(list.get(0)); // 输出 Java list.remove(1); System.out.println(list.size()); // 输出 1 ``` #### 3. **Map 常用方法** `Map` 是一种键值对结构,用于存储和检索数据。 - `put(K key, V value)`:插入键值对。 - `get(Object key)`:获取指定键对应的值。 - `remove(Object key)`:移除指定键的映射关系。 - `containsKey(Object key)`:判断是否包含指定键。 - `containsValue(Object value)`:判断是否包含指定值。 - `keySet()`:获取所有键的集合。 - `values()`:获取所有值的集合。 - `entrySet()`:获取键值对的集合。 - `size()`:返回键值对的数量。 - `isEmpty()`:判断是否为空。 ```java Map<String, Integer> map = new HashMap<>(); map.put("Math", 90); map.put("English", 85); System.out.println(map.get("Math")); // 输出 90 System.out.println(map.containsKey("English")); // 输出 true for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } ``` #### 4. **StringMap 的转换** 在实际开发中,经常需要将字符串转换为 Map 或者将 Map 转换为字符串。例如,可以使用 `toString()` 方法将 Map 转换为字符串[^1],然后通过解析字符串将其还原为 Map。 ```java public static Map<String, Object> stringToMap(String str) { Map<String, Object> map = new HashMap<>(); String[] entries = str.split(", "); for (String entry : entries) { String[] keyValue = entry.split("="); if (keyValue.length == 2) { map.put(keyValue[0], keyValue[1]); } } return map; } ``` 需要注意的是,在进行字符串解析时,确保原始字符串中的值不包含逗号(`,`)或等号(`=`),否则会导致解析错误[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值