Collection子接口List下的实现类ArrayList的基本使用

前言

以下内容均是自我学习之路上的笔记,供大家参考学习,希望大家一键三连支持一下。

一.知识点的概述

/*1.List集合下有以下特点:
有序可重复
有序:List集合有下标,从0开始以1递增。
可重复: 存下一个1 ,还可存下一个1

2.List既然是Collection的子接口,当然有List接口“特色”的方法
以下为List中特有的常用方法: -----------具体测试在TestArrayList之中
1.void add(int index,Object o)
2. Object get(int index)
3. int indexOf(Object o)
4. int LastIndexOf(Object o)
5. Object remove(int indexOf)
6. void set(int index, Object element)

3.构造方法:
3.1 :new ArrayList() ------默认容量为 10
3.2 : new ArrayList(20);

4.ArrayList集合的扩容:
增长到原容量的1.5倍
ArrayList的底层为数组,怎么优化?
1.尽可能少的扩容,因为扩容效率比较低,建议中使用ArrayList集合的时候
预估元素的个数,以满足客户的需求

5.数组的优点:
1.检索效率比较高,(有下标可以通过计算取得直接找到该元素的地址)
2.向数组末尾添加元素,效率很高,不受到影响

6.数组的缺点:
随机删除元素的效率比较低(如果删除掉中间元素,则需要将其他元素逐个移动)

7.面试官常问的一个问题:
这么多集合中哪个集合用的频率最多?
答:ArrayList集合
*/

二.知识概述的测试类:


import java.util.ArrayList;
import java.util.List;
//本类主要测试:以下为List中特有的常用方法:    -----------具体测试在TestArrayList之中
//1.void add(int index,Object o)
//2. Object get(int index)
//3.  int indexOf(Object o)
//4. int LastIndexOf(Object o)
//5. Boolean remove(int indexOf)
//6. void set(int index, Object element)

public class TestArrayList {
    public static void main(String[] args) {
        List list1=new ArrayList(20); // List (接口) new子类的对象ArrayList,并且赋予初始容量20
        list1.add("String");
        list1.add(123);
        list1.add(456);
        list1.add(3.14);
        list1.add(123);


        for(int i=0;i<list1.size();i++){
            Object obj=list1.get(i);
            System.out.println(obj);
        }
        System.out.println("____________________-");

        // 1.void add(int index,Object o):在某下标添加为元素,要移动太多效率较低(少用)
        list1.add(2,"插入元素");

        // ---------方法 int indexOf(): 获取某元素第一次出现的索引
        int a=list1.indexOf(123);
        System.out.println(a);// 1  输出3.14元素第一次出现的的索引

        // ---------方法 int LastIndexOf():获取某元素最后一次出现的索引
        int b=list1.lastIndexOf(123);
        System.out.println(b);// 5 输出123 最后出现的索引

        // ----------方法 Object get(int indexOf): 获取某下标元素
        Object o=list1.get(1);
        System.out.println(o);// 123 输出下标为1的元素

        // ----------方法 Object remove() : 删除指定下标元素,并返回该元素
        Object object=list1.remove(3.14);
        System.out.println(object); // 输出被删除元素

        // ----------方法 void set(int index ,Object element) :修改某下标元素
        list1.set(1,"abcd");


        System.out.println("_________________________");
        // 利用上述 get()和 size() 遍历
        for(int i=0;i<list1.size();i++){
            Object obj=list1.get(i);
            System.out.println(obj);
        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值