List集合
-
list集合常用方法
-
执行路口
package cn.xiaoge.day14.demo01; /* java.util.list接口 extends Collection接口 list接口的特点: 1. 有序的集合, 存储元素和取出元素的顺序是一致的(存储123 取出123) 2. 有索引, 包含了一些带索引的方法 3. 允许存储重复元素 list接口中带索引的方法(特有) public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。 public E get(int index) :返回集合中指定位置的元素。 public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。 public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 注意: 操作索引的时候, 一定要防止索引越界异常 IndexOutOfBoundsException: 索引越界异常, 集合会报 ArrayIndexOutOfBoundsException: 数组索引越界异常 StringIndexOutOfBoundException: 字符串索引越界异常 */ import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Demo01List { public static void main(String[] args) { // 创建一个list集合对象, 多态 List<String> list = new ArrayList<>(); // 使用add方法往集合中添加元素 list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("a"); // 打印下集合 System.out.println(list); // [a, b, c, d, a] 不是地址 从写了toString方法 System.out.println("=========================="); /* public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置上。 在c和d之间添加一个xiaogeit */ list.add(3, "xiaogeit"); System.out.println(list); // [a, b, c, xiaogeit, d, a] System.out.println("=========================="); /* public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。 移除元素 */ String removeE = list.remove(2); System.out.println("被删除的元素:" + removeE); // 被删除的元素:c System.out.println(list); // [a, b, xiaogeit, d, a] System.out.println("=========================="); /* public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。 把最后一个a替换为大写的A */ String setE = list.set(4, "A"); System.out.println("被替换的元素:" + setE); // 被替换的元素:a System.out.println(list); // [a, b, xiaogeit, d, A] System.out.println("=========================="); /* list集合遍历有3种方式 使用普通的for循环 public E get(int index) :返回集合中指定位置的元素。 */ for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + " "); // a b xiaogeit d A } System.out.println(""); System.out.println("=========================="); // 使用迭代器遍历 Iterator<String> it = list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } System.out.println("=========================="); // 使用增强for for (String s : list) { System.out.println(s); } System.out.println("=========================="); // String s = list.get(5); // IndexOutOfBoundsException // System.out.println(s); } } // 运行结果 ========================== a b xiaogeit d A ========================== a b xiaogeit d A ========================== a b xiaogeit d A ==========================
-
-
LinkedList集合特有方法
-
执行路口
package cn.xiaoge.day14.demo01; /* java.util.LinkedList集合 implements List接口 LinkedList集合的特点: 1. 底层是一个链表结构: 查询慢, 增删块 2. 里面包含了大量操作首尾元素的方法 注意: 使用LinkedList集合特有的方法, 不能使用多态 public void addFirst(E e) :将指定元素插入此列表的开头。 public void addLast(E e) :将指定元素添加到此列表的结尾。 public void push(E e) :将元素推入此列表所表示的堆栈。 public E getFirst() :返回此列表的第一个元素。 public E getLast() :返回此列表的最后一个元素。 public E removeFirst() :移除并返回此列表的第一个元素。 public E removeLast() :移除并返回此列表的最后一个元素。 public E pop() :从此列表所表示的堆栈处弹出一个元素。 public boolean isEmpty() :如果列表不包含元素,则返回true。 */ import java.util.LinkedList; public class Demo02LinkedList { public static void main(String[] args) { show01(); show02(); show03(); } /* public E removeFirst() :移除并返回此列表的第一个元素。 public E removeLast() :移除并返回此列表的最后一个元素。 public E pop() :从此列表所表示的堆栈处弹出一个元素。 此方法相当于removeFirst() */ private static void show03() { // 创建LinkedList集合对象 LinkedList<String> linked = new LinkedList<>(); linked.add("a"); linked.add("b"); linked.add("c"); System.out.println(linked); System.out.println("*****************************"); /* public E removeFirst() :移除并返回此列表的第一个元素。 */ String firstElement = linked.removeFirst(); System.out.println(firstElement); // a System.out.println(linked); // [b, c] System.out.println("*****************************"); /* public E removeLast() :移除并返回此列表的最后一个元素。 */ String lastElement = linked.removeLast(); System.out.println(lastElement); // c System.out.println(linked); // [b] System.out.println("*****************************"); /* public E pop() :从此列表所表示的堆栈处弹出一个元素。 此方法相当于removeFirst() */ String element = linked.pop(); System.out.println(element); // b System.out.println(linked); // [] System.out.println("**********show03结束**********"); } /* public E getFirst() :返回此列表的第一个元素。 public E getLast() :返回此列表的最后一个元素。 */ private static void show02() { // 创建LinkedList集合对象 LinkedList<String> linked = new LinkedList<>(); linked.add("a"); linked.add("b"); linked.add("c"); // linked.clear(); // 清空集合中的元素 在获取集合中的元素会抛出NoSuchElementException /* public boolean isEmpty() :如果列表不包含元素,则返回true。 */ if (!linked.isEmpty()){ /* public E getFirst() :返回此列表的第一个元素。 */ String firstElement = linked.getFirst(); System.out.println(firstElement); // a System.out.println("*****************************"); /* public E getLast() :返回此列表的最后一个元素。 */ String lastElement = linked.getLast(); System.out.println(lastElement); // c } System.out.println("**********show02结束**********"); } /* public void addFirst(E e) :将指定元素插入此列表的开头。 public void addLast(E e) :将指定元素添加到此列表的结尾。 public void push(E e) :将元素推入此列表所表示的堆栈。 此方法等效于addFirst() */ private static void show01() { // 创建LinkedList集合对象 LinkedList<String> linked = new LinkedList<>(); // 使用add方法往集合中添加元素 linked.add("a"); linked.add("b"); linked.add("c"); System.out.println(linked); // [a, b, c] System.out.println("*****************************"); /* public void addFirst(E e) :将指定元素插入此列表的开头。 */ linked.addFirst("www"); System.out.println(linked); // [www, a, b, c] System.out.println("*****************************"); /* public void push(E e) :将元素推入此列表所表示的堆栈。 此方法等效于addFirst() */ linked.push("baidu"); System.out.println(linked); // [baidu, www, a, b, c] System.out.println("*****************************"); /* public void addLast(E e) :将指定元素添加到此列表的结尾。 此方法等效于add() */ linked.addLast("com"); System.out.println(linked); System.out.println("**********show01结束**********"); } } // 运行结果 [a, b, c] ***************************** [www, a, b, c] ***************************** [baidu, www, a, b, c] ***************************** [baidu, www, a, b, c, com] **********show01结束********** a ***************************** c **********show02结束********** [a, b, c] ***************************** a [b, c] ***************************** c [b] ***************************** b [] **********show03结束**********
-