泛型的使用

基本数据类型的封装类型

1.基本数据类型与封装类的一一对应

byte-Byte

short-Short 

int-Integer

long-Long

char-Character

boolean-Boolean

float-Float

double-Double

2.自动装箱与自动拆箱

-自动装箱

把基本数据类型的变量赋值给封装类型变量

        int i=150;
        Integer i1=i;
        Integer i2=150;
        System.out.println(i1);
        System.out.println(i2);
        //i1和i2在超过127后,在Integer中以新的对象存储,而不以数存储
        System.out.println(i1==i2);
        System.out.println(i1.equals(i2));
        //==与equals也存在不同

-自动拆箱

把封装数据类型变量转为基本数据类型变量

       int i4= new Integer(30);
       int i5=i2;
       //装箱过的才可以拆箱
        System.out.println(i4);
        System.out.println(i5);

<>中不可以写基本数据类型,要用封装数据类型去替代

3.泛型的使用

作用:保证了创建的数组可以存任何类型的的数据,但是每一个数组只能存一种类型的数据

泛型的声明:类名的右边加上<>,其中写一个通配符,任何字母,单词都可以,最好大写

使用:-声名参数类型

public class ArraylistDIY<E> {
  public void add2(E e){
        //判断容量与下标的大小
        if(index==length){
            //扩容
           int newlength=length+(length>>1);
          Object []newarray  =new Object[newlength];
          for(int t=0;t<length;t++){
              newarray[t]=Array[t];
          }
          Array=newarray;
        }
        Array[index]  =e;
        index++;
        size++;
        
    }

​​​​​​​    

ArraylistDIY arraylistDIY=new ArraylistDIY(10);
       //创建对象后,自动调用构造方法
       
       arraylistDIY.<String>add2("tgv");

       

             -声明返回值类型

 public E get2(int index){
        if(index==length){
            throw new ArrayIndexOutOfBoundsException("index超出范围");
        }
        else{
           Object ob =Array[index];
           return (E)ob;
        }
        
    }
System.out.println(arraylistDIY.get2(6));

问题集:

1.装箱与拆箱是干什么的?

在Java1.5下,不能直接向集合(collection)中放入原始类型值,因为集合只接收对象,通常这种情况下,做法应该是将这些原始类型的值转换成对象,然后将这些转换的对象放入集合中。但在某些程度上,使代码不够简洁,Java1.5下引入具有在原始类型和对象类型自动转换的装箱和拆箱机制

2.equals与==的区别

equals是判断两个变量或实例所指向的内存空间的值时表示相同

==是判断两个变量或实例是不是指向同一个内存空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值