前言
以下内容均是自我学习之路上的笔记,供大家参考学习,希望大家一键三连支持一下。
一.知识点的概述
/*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);
}
}
}