[5.14]Java 基础知识 (ArrayList)

ArrayList的用法

ArrayList类是一个特殊的数组。它来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度。

一、优点

1)支持自动改变大小的功能
2)可以灵活的插入元素
3)可以灵活的删除元素

二、局限性

跟一般的数组比起来,速度上差些。

因为它是动态数组,初始化大小容量4,当数据存满时扩容是以当前数组容量大小的2倍扩容,之后再把数组元素一个一个的存入,数组在扩容时浪费一定的内存空间,和存储时间,而且,元素添加是一个装箱的过程,所以说,跟一般的数组比起来,速度上差些。

ArrayList初始化 ArrayList有三种初始化

1)不初始化起容量 ArrayList al = new ArrayList();//默认容量为0,当数组容量满时数组会自动一当前数组容量的2倍扩容

2)初始化容量ArrayList al = new ArrayList(3);//初始容量为3

3)以一个集合或数组初始化ArrayList al = new ArrayList(a);//a为集合或数组

添加

添加元素用其自带的方法add(object value);
ArrayList al = new ArrayList();
al.add(“a”);
Insert(int index,object value)方法也可以用来将元素插入到索引处,不过其有一定的限制性,必须在数组长度以内插入数组

InsertRange(int index,ICollection c)方法同Insert()一样

删除

al.Remove(object obj);//移除数组中的obj元素
al.RemoveAt(int index);//移除索引为index的数字元素
al.RemoveRange(int indext,int count);//移除从索引index开始,移除count个元素

import java.util.ArrayList;

public class Test {
public static void main(String[] args) {
ArrayList studentList = new ArrayList<>();

    Student s1 = new Student();
    s1.setName("小明");
    s1.setClassName("1年级1班");
    s1.setAge(8);

    Student s2 = new Student("小红","2年级5班",10);
    Student s3 = new Student("小白","1年级6班",9);
    Student s4 = new Student("小黑","2年级3班",8);
    Student s5 = new Student("小蓝","3年级2班",10);
    Student s6 = new Student("小黄","2年级1班",8);
    Student s7 = new Student("小绿","1年级1班",2);
    Student s8 = new Student("小灰","3年级1班",92);

    studentList.add(s1);
    studentList.add(s1);
    studentList.add(s1);
    studentList.add(s1);
    studentList.add(s1);
    studentList.add(s1);
    studentList.add(s1);

    for (Student stu : studentList) {
        System.out.println("姓名:"+stu.getName()+",年级:"+stu.getClassName()+",年龄:"+stu.getAge());
    }

    studentList.remove(studentList.size()-1);
    System.out.println();
    for(int i=0;i<studentList.size();i++) {
        Student s = studentList.get(i);
        System.out.println(s.getName()+"今年"+s.getAge()+"岁,在"+s.getClassName());
    }



}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值