JAVA基础 泛型数组链表

Generic Array List

ArrayList的声明

ArrayList 变量名<类> = new ArrayList <类>();

  • 对于Java10 可以这样声明 var 变量名 = new ArrayList<类>();
  • 若是不适用 var 关键字, 可以省去右边的类型 如 ArrayList<String> a = new ArrayList<>();

ArrayList的方法

  • 使用add方法向ArrayList中添加新对象
    ArrayList <Employee> staff = new ArrayList <Employee>();
    Employee e = new Employee (signiture);
    staff.add(e);

  • remove方法
    staff.remove(int index );
    删除给定位置的对象并且自动了连接后面的元素。 返回被删除的元素

  • ensureCapacity方法 提前分配内存
    ArrayList<Employee> staff = new ArrayList<>(100);
    或者
    staff.ensureCapacity(100);

  • size方法
    staff.size 返回容器中实际的对象个数 类似于数组中的 a.length

  • trimToSize方法
    一旦已知了某一容器的大小将不再变化 如雇员只有50人且不会增加,可以使用 staff.trimToSize()
    来回收不用的内存

访问容器元素

  • setget方法
    • set
      ArrayList <Employee> staff = new ArrayList<>();
      staff.add(new Employee("zhang",20));
      staff.add(new Employee("yang",20));
      staff.set(1, new Employee("tian",20));
      staff.get(1);
      注意: set 方法的最大下标不可以大于当前元素个数,如在一个只有3个Employee的ArrayList中
      staff.set(3,Employee other);//报错
      以上代码会报错。
    • get
      staff.get(index x )//返回一个reference

Typed ArrayList 和 Raw ArrayList 的兼容性问题

Notes:安全起见,我们在new ArrayList时都会确定放入这个链表里面的类,但是有时维护代码时会遇到遗留代码中的 Raw ArrayList
这里介绍如何处理这种代码。

以后来更这里

包裹类型

  • Integer
  • Long
  • Float
  • Double
  • Short
  • Byte
  • Character
    以上6种有公共父类 Number 类
  • Boolean
    • 所有的包裹类型都是不可变的类,一旦被创建 就不能再更改值。 包裹类也是final类, 不可创建子类。

因为对于ArraryList<class>,参数必须是类,不能是基础类型 ,比如int。 但是我们可以利用int的包裹类型区创建一个int型的ArrayList
ArrayList <Integer> i1= new ArrayList<Integer>();

自动装箱 autoboxing

当把一个int的值赋给一个Integer对象,这个int会自动装箱成为一个Integer, 如:
i1.add(3)//这里只给了一个int 等同于 i1.add(Integer.ValueOf(3);

自动开箱 unboxing

int n = i1.get(1); 这里把Integer开箱为int 3 赋给变量n;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值