java学习笔记-list集合
1. ArrayList
- 概述:有序集合,用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并且搜索列表中的元素
list集合特点:
有序,存储和取出的元素顺序一
可重复:存储的元素可以重复
package com.ustc.test5;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class listdemo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
System.out.println(list);
Iterator<String> it = list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
ArrayList特有的方法:
Void add(int index,Element e) //插入元素
E remove(int index) //指定索引删除元素
E set(int index,E element) //指定索引修改元素
E get(int index) //指定索引 获取元素
package com.ustc.test5;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class listdemo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
System.out.println(list);
Iterator<String> it = list.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
list.remove(1);
System.out.println(list);
list.set(0,"xxx");
System.out.println(list);
String s = list.get(0);
System.out.println(s);
}
}
ArrayList:底层数据结构是数组,查询快,增删慢
空参构造创建ArrayList对象:创建一个长度为0的数组
变量size :默认指向0索引,添加一个元素,size++
当数组添加满之后 在添加一个元素 数组进行扩容,将原有数组的内容添加到新的数组中,(动态数组)
2.LinkedList
底层数据结构是链表 查询慢 增删快
package com.ustc.test5;
import java.util.Iterator;
import java.util.LinkedList;
public class test6 {
public static void main(String[] args) {
LinkedList<String> l = new LinkedList<>();
l.add("xxxx");
l.add("z");
l.add("a");
l.add("x");
l.add("3ewew");
for (int i = 0; i < l.size(); i++) {
System.out.println(l.get(i));
}
Iterator<String> it = l.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
特有功能:
Public void addFirst(E e) //链表开头添加元素
pubLic void addLast(E e) //链表结尾添加元素’
Public E getFirst() //返回列表中的第一个元素
Public E getLast() //返回列表中的最后一个元素
Public E removeFirst() //从列表中删除并且返回第一个元素
Public E removeLast() //从列表中删除最后一个元素