java第十三天---Arrays类、基本类型包装类、Integer类、自动装箱与拆箱、集合Collection、迭代器、集合List、数据结构之栈和队列和数组和链表、List的三个子类、

本文深入探讨Java中的数组操作工具类Arrays,介绍基本类型包装类及其用途,详细解析Integer类的构造方法与转换方式,讲解自动装箱与拆箱的概念,对比数组与集合的不同,阐述Collection接口的主要功能,分析List集合的特性与遍历方法,解释并发修改异常的原因及解决方案,并对比不同数据结构的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1  Arrays

Arrays类概述
        针对数组进行操作的工具类。
        提供了排序,查找等功能。

成员方法
        public static String toString(int[] a)
        public static void sort(int[] a)
        public static int binarySearch(int[] a,int key)

只要是数组,都可以System.out.pringln(Arrays.toString(arr))直接将数组输出来,输出字符串格式

2 基本类型包装类

为什么会有基本类型包装类
        为了对基本数据类型进行更多的操作,更方便的操作,java就针对每一种基本数据类型提供了对应的类类型.

基本类型和包装类的对应
        byte              Byte
        short            Short
        int                 Integer
        long              Long
        float              Float
        double         Double
        char            Character
        boolean       Boolean

 

3 Integer类

构造方法
        public Integer(int value)
        public Integer(String s)

String和int类型的相互转换

    A:int -- String
        a:和""进行拼接
        b:public static String valueOf(int i)  直接类名String.valueOf(int i)静态得到一个String对象
        c:int -- Integer -- String
        d:public static String toString(int i) 先将int转为Integer,然后调用方法toString
    B:String -- int
        a:String -- Integer -- intValue();  通过Integer构造方法,将String作为参数,创建Integer对象,然后调用intValue(),即可得int
        b:public static int parseInt(String s)  直接类名Integer调用parselnt静态方法,得到int型

4 自动装箱与拆箱

        自动装箱:把基本类型转换为包装类类型
        自动拆箱:把包装类类型转换为基本类型

      Integer ii = 100;
        ii += 200;      先拆箱计算再装箱赋值

注意事项
        
在使用时,Integer  x = null;代码就会出现NullPointerException。
        建议先判断是否为null,然后再使用。

     

 面试题

A:Integer的面试题
        看程序写结果
        
        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        System.out.println(i1 == i2);
        System.out.println(i1.equals(i2));
        System.out.println("-----------");

        Integer i3 = new Integer(128);
        Integer i4 = new Integer(128);
        System.out.println(i3 == i4);
        System.out.println(i3.equals(i4));
        System.out.println("-----------");

        Integer i5 = 128;
        Integer i6 = 128;
        System.out.println(i5 == i6);//false  因为 超过了一个字节的范围 会new 一个Integer对象
        System.out.println(i5.equals(i6));
        System.out.println("-----------");

        Integer i7 = 127;
        Integer i8 = 127;
        System.out.println(i7 == i8);//true 没有超过一个字节的范围 因为在方法区中存在一个 字节常量池 范围-128---127
        System.out.println(i7.equals(i8));

    

 

5 集合Collection

数组和集合的区别
        (1): 长度区别:
            数组的长度是固定的而集合的长度是可变的
        (2): 存储数据类型的区别:
            数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合只能存储引用数据类型
        (3): 内容区别:
            数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素

Collection的功能

       a:添加功能
            boolean add(Object obj):添加一个元素
            boolean addAll(Collection c):添加一个集合的元素  (给一个集合添加进另一个集合中的所有元素)
        b:删除功能
            void clear():移除所有元素
            boolean remove(Object o):移除一个元素
            boolean removeAll(Collection c):移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素 ,如果没有交集元素 则删除失败 返回false

       c:判断功能
            boolean contains(Object o):判断集合中是否包含指定的元素  

 
            boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(这个集合 包含 另一个集合中所有的元素才算包含 才返回true)

           boolean isEmpty():判断集合是否为空

       d:长度功能
            int size():元素的个数
            面试题:数组有没有length()方法呢?没有,数组只有属性length字符串有没有length()方法呢?集合有没有length()方法呢?集合没有length().集合有size()

      e:交集功能

            boolean retainAll(Collection c):获取两个集合的交集元素(交集:两个集合都有的元素)

     f:把集合转换为数组
            Object[] toArray()

 

Collection集合的遍历

        1 把集合转成数组toArray(),遍历这个数组 可以实现集合的遍历。

        2 对 collection 进行迭代的迭代器Iterator

 

6 List集合

       List概述及特点:    元素有序,并且每一个元素都存在一个索引.元素可以重复.

List集合的特有功能概述
      
 void add(int index,E element):    在指定索引处添加元素
        E remove(int index):移除指定索引处的元素  返回的是移除的元素
        E get(int index):获取指定索引处的元素
        E set(int index,E element):更改指定索引处的元素 返回的而是被替换的元素

 

List集和遍历

   1  把集合转成数组toArray(),遍历这个数组 可以实现集合的遍历。

   2  List集合存储学生对象并遍历。通过size()和get()方法结合使用遍历。

   3  迭代器遍历,ListIterator 继承自Iterator  可以使用Iterator中的方法

 

7 并发修改异常产生的原因及解决方案

 

解决方案1

 解决方案2

使用for循环遍历集合 添加元素 不会报错

 

 

8  常见数据结构

栈 , 队列 , 数组 , 链表 , 树 , 哈希表、

特点

        栈特点:     先进后出
        队列:         先进先出

        数组特点:    查询快 , 增删慢
        链表特点:     查询慢 , 增删快

List的三个子类的特点
        ArrayList:
            底层数据结构是数组,查询快,增删慢。
            线程不安全,效率高。
        Vector:
            底层数据结构是数组,查询快,增删慢。
            线程安全,效率低。
        LinkedList:
            底层数据结构是链表,查询慢,增删快。
            线程不安全,效率高。
  List有三个儿子,我们到底使用谁呢?
    得看  要安全还是要效率
      是查找多还是增删多

 

9 注意

   1


  2

 

3

4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值