(Java笔记)List接口及其实现类---ArrayList

List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。

首先 先创建一个学类 Course 便于下面观察:

package www.contentcl.cn;
/**
 * 课程类
 * @author Administrator
 *
 */
public class Course {
    public String name;
    public String id;

    public Course(String id, String name){
        this.id = id;
        this.name = name;
    }

}

开始之前先引入一个概念 泛型
这里写图片描述
但我们本次 先使用 任意类型的对象

1.创建

在另一个 函数类中 创建一个 List
我们可以创建 一个指定类型(泛型)的List
eg: List< Course > = new ArrayList< Course >();
或者 在类中 创建一个 自定义的 List

public class Listtest {

    /**
     * 用于存放备选课程的List
     */
    public List coursese;

    public Listtest(){
        this.coursese = new ArrayList();
    }
}

2.增加元素

1.Course sign1 = new Course(“1”, “高等数学”);
coursese.add(sign1); //添加到List末端

2.Course sign2 = new Course(“2”, “数据结构”);
coursese.add(0, sign2); //添加到下标为0的位置, 后面如果有数据往后移

3.// 创建对象数组
Course[] course = {new Course(“3”, “线性代数”), new Course(“4”, “C语言”)};
coursese.addAll(Arrays.asList(course)); //1个参数都是追加到末尾
coursese.addAll(2, Arrays.asList(course)); //对应第一个放在 下边为2的位置,第二个放在3的位置 后面数据往后移

4.特别注意 : 如果添加到具体, 所要加入的位置不能超过List的长度;

3.获取数据

1.获取单一的数据

Course show1 = (Course) coursese.get(0); //获取下标为0的数据
因为coursese.get(0) 获取到的 数据类型是Object类型 所以 我们要强 制类型转化为Course对象类型

2.通过for循环遍历List

int size = coursese.size(); //获取集合类型大小用size()方法
        for (int i=0; i<size; i++){
            Course get1 = (Course) coursese.get(i);
            System.out.println("课程:"+get1.id+" "+get1.name);
        }

3.通过迭代器去遍历List

Iterator it = coursese.iterator(); //创建迭代器
        while (it.hasNext()) //是否含有元素 不断下一个
        {
            Course iget1 = (Course) it.next(); //迭代器的.next方法
            System.out.println("课程:"+iget1.id+" "+iget1.name);  
        }

4.通过for each遍历List的元素

for (Object obj1 : coursese){
            Course obj = (Course) obj1;
            System.out.println("课程:"+obj.id+" "+obj.name);  
        }

4.修改数据

用List的set()方法
coursese.set(1, new Course(“10”,”毛概”)); // 第一个参数是他的位置

5删除数据

1.通过查找数据元素直接删除

Course remove1 =(Course) coursese.get(0);  //获取数据
        coursese.remove(remove1);

2.通过下标直接删除

coursese.remove(0);

3删除对象数组中的数据

Course []remove2 = {(Course) coursese.get(0), (Course) coursese.get(1)};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值