泛型数组与hashmap

5.3泛型数组列表

5.3.1 访问数组元素列表

基本类型和包装类是等价的

可以用int接受Integer的

java 复制代码
import java.util.*;
public class text1 {
    public static void main(String[] args)throws Exception {
        String[] arr=new String[100];//长度定死
        ArrayList<String> xx=new ArrayList<>();
        //泛型数组<>中可以放除基本类型外的任意类型 支持for-each循环
        //数组长度可扩展 动态可伸缩数组
        xx.add("aaa");
        //添加元素 aaa
        xx.add("bbb");
        xx.get(1);//获取下标为1的元素
        xx.remove(1);//删除下标为1的元素 即 bbb 后面元素会自动往前移动
        int num=xx.size();//获取数组长度
        
        ArrayList<ArrayList<String>> ss1=new ArrayList<>();
        //二维数组
    }
    //int--Integer long-Long float--Float double--Double
//boolean--Boolean char--Character
//byte--Byte short--Short
}

5.4对象包装器与自动装箱

面试点:128陷阱

基本类型对应的引用类型,如果数值一样,但是范围不在-128-127中。则不是一个对象

比如

java 复制代码
int k1=100;
int k2=100;
Integer k3=100;
Integer k4=100;
System.out.println(k1==k2);
System.out.println(k3==k4);
java 复制代码
true
true
java 复制代码
int k1=128;
int k2=128;
Integer k3=128;
Integer k4=128;
System.out.println(k1==k2);
System.out.println(k3==k4);
java 复制代码
true
false

因为Integer是引用类型表示指向是否相同

如果范围在-128-127之间指的是一个对象

超出就不是一个对象了

数值类的包装类都有这个问题

要想比较值大小的话可以分别用对应基本类型的变量接受一下 再比较基本类型的变量值是否相等

还可以用类型转换比较

例如

java 复制代码
ArrayList<Integer> xx1=new ArrayList<>();
ArrayList<Integer> xx2=new ArrayList<>();
if(xx1.get(10).intValue()==xx2.get(10).intValue()==)

重要的泛型结构--hashmap

java 复制代码
import java.util.*;
public class text1 {
    public static void main(String[] args)throws Exception {
        HashMap<String,Integer> map=new HashMap<>();
        //<>中前边是key值类型 后边是value值类型
        
        map.put("张三", 23);
        //向hashmap中添加这个元素
        map.put("老刘", 33);
        map.put("小花", 43);
        
        int x1=map.get("张三");
        //获取map中key值为"张三"对应的value值 x1=23 x1类型也应该与value类型相同
        //困难级别的算法题大多数都是动态规划--困难级别的动态规划大多都需要hashmap检测去重提升时间性能
        //困难级别的算法题--大多数离不开hashmap
        
        //遍历hashmap的方法  下面这个好用
        
        for(String key:map.keySet())
        {
            System.out.println("key="+key+",Value="+map.get(key));
        }
        
    }
    
}
相关推荐
手握风云-32 分钟前
Spring AI:让大模型住进 Spring 生态(三)
java·后端·spring
深邃-2 小时前
【数据结构与算法】-二叉树(2):实现顺序结构二叉树(堆的实现),向上调整算法,向下调整算法,堆排序,TOP-K问题
数据结构·算法·二叉树·排序算法·堆排序··top-k
咸鱼2.02 小时前
【java入门到放弃】Dubbo
java·开发语言·dubbo
We་ct4 小时前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·javascript·算法·leetcode·typescript
JAVA面经实录9178 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
王老师青少年编程8 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
周杰伦fans9 小时前
AutoCAD .NET 二次开发:深入理解 EntityJig 的工作原理与正确实现
开发语言·.net
叼烟扛炮9 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
天疆说9 小时前
【哈密顿力学】深入解读航天器交会最优控制中的Hamilton函数
人工智能·算法·机器学习
许彰午10 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存