ArrayList和LinkedList是接口列表的实现类,ArrayList是序列表结构,LinkedList是链表结构。 顺序表的最大特点是他可以快速随机访问数据。 链表的一点是,他对添加和删除数据非常敏捷,处理效率非常高。 但是,为了访问数据,链表必须通过移动指针来访问遍历节点,因此它并不快到可以通过顺序表提供索引位置来访问数据的程度。
我们学到的数组,数字的长度是固定的。 当数组已满时,就无法插入新元素。 数组的长度必须从一开始就定义,不利于今后的使用。 但是,ArrayList集合的长度可以自由改变。
ArrayList的常用方法:方法名称说明布尔添加(对象) )。
在列表末尾按顺序添加元素,开始索引位置从0开始
语音添加(索引,对象o ) )。
在指定的索引位置添加元素。 索引位置必须介于0和列表中的元素数之间
int size () )
返回列表中的元素数
对象获取(索引) )。
返回指定索引位置的元素。 检索的元素为Object类型,使用前需要强制类型转换
布尔内容(对象) ) )。
确定列表中是否存在指定的元素
布尔型移除(对象) ) )。
从列表中删除元素
对象移除(索引)。
从列表中删除指定的位置元素。 开始索引位置从0开始
对象集(intindex,Object o ) )。
指定下标以修改其中的元素,并返回修改前的对象
对于ArrayList集合,直接打印对象名称可以获得内容而不是地址值,如果内容为空,则打印结果为。
声明方法: ArrayListE集合名称=new ArrayList (; 其中,e表示通用性。 也就是说,集合中的元素类型应该统一。
使用add方法将元素添加到集合中。 注释以下代码ArrayList中常用方法的示例演示:
ublicclassdemoarraylist { publicstaticvoidmain (字符串[ ] args ) arraylistintegerlist=new ArrayList ); 演示如何使用公共布尔添加()方法//system.out.println(list.add ) )2); //添加时返回布尔值,TRUE表示插入成功。 系统. out.println (list.add (5) ); 系统. out.println (list.add (6) ); 系统. out.println (list.add (9) ); system.out.println (列表; //publiceget(intindex )方法演示如何使用//system.out.println (list.get )3); //indexoutofboundsexception :索引:3,size :3 system.out.println (list.get (2) ); 演示公共电子移除
(int index) 和 public int size() System.out.println(list.size());//3 System.out.println(list.remove(2));//9 返回删除对象 System.out.println(list.size());//2 长度减一 //演示 boolean remove(Object o) //此时我们的集合中元素类型是Integer,不能直接删除 //因为我们输入数值,编译器会把他当做索引值,使用valueOf()方法 list.add(7); System.out.println(list);//[5,6,7] System.out.println(list.remove(Integer.valueOf(7))); System.out.println(list);//[5,6] //演示void add(int index,Object o) list.add(2,10);//此时长度是2,可以在索引为2的位置上添加元素 System.out.println(list); list.add(3,100);//此时长度是3,但是要往索引为4的位置添加元素不可行 //IndexOutOfBoundsException: Index: 4, Size: 3 System.out.println(list);//[5, 6, 10, 100] //演示 boolean contains(Object o) 的使用方法 //[5, 6, 10, 100] System.out.println(list.contains(100));//true System.out.println(list.contains("hello"));//false //演示Object set(int index,Object o) 修改对应位置的值,返回修改之前的值 System.out.println(list.set(3,99));//100 System.out.println(list);//[5, 6, 10, 99] }}LinkedList的常用方法:
1、LinkedList底层是一个链表结构,查询慢,增删快。
2、LinkedList里包含了大量的操作首尾的方法。(特有的方法,不可使用多态)
方法名说明void addFirst(Object o)在列表的首部添加元素void addLast(Object o)在列表的末尾添加元素Object getFirst()返回列表中的第一个元素Object getLast()返回列表中的最后一个元素Object removeFirst()删除并返回列表中的第一个元素Object removeLast()删除并返回列表中的最后一个元素常用方法的演示;示例:(寻寻觅觅冷冷清清凄凄惨惨戚戚,乍暖还寒时候,最难将息。三杯两盏淡酒,怎敌他晚来风急。)
public class DemoLinkedList { public static void main(String[] args) { LinkedList<String> list = new LinkedList<>(); LinkedList<Integer> list1 = new LinkedList<>(); //演示 public void addFirst(E e) 1 //演示 public void addLast(E e) 2 //演示 public void push(E e) 3 list.add("n乍暖还寒时候"); list.add("最难将息"); list.add("三杯两盏淡酒"); list.addFirst("凄凄惨惨戚戚"); list.push("寻寻觅觅冷冷清清");//与addFirst方法具有相同的效果 System.out.println(list);//[寻寻觅觅冷冷清清, //凄凄惨惨戚戚, 乍暖还寒时候, 最难将息, 三杯两盏淡酒] list.addLast("怎敌他,晚来风急");//尾部插入 System.out.println(list);//[寻寻觅觅冷冷清清, 凄凄惨惨戚戚, //乍暖还寒时候, 最难将息, 三杯两盏淡酒, 怎敌他,晚来风急] //演示public E getFirst() //演示public E getLast() System.out.println(list.getFirst());//寻寻觅觅冷冷清清 System.out.println(list.getLast());//怎敌他,晚来风急 //演示public E removeFirst() //演示public E removeLast() //演示public E pop() System.out.println(list); //删除首句 System.out.println(list.remove());//与removeFirst等效 System.out.println(list.removeFirst()); System.out.println(list.pop());//与上面方法等效,都是删除表头 //删除尾句 System.out.println(list.removeLast()); //删除了两个首句,和两个尾句的集合 System.out.println(list);//[最难将息, 三杯两盏淡酒]}}