当前位置:   article > 正文

List集合、Arraylist集合_list集合和arraylist集合

list集合和arraylist集合

List集合

  1. package com.itheima.demo01.List;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. /*
  6. java.util.List接口 extends Collection接口
  7. List接口的特点:
  8. 1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
  9. 2.有索引,包含了一些带索引的方法
  10. 3.允许存储重复的元素
  11. List接口中带索引的方法(特有)
  12. - public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
  13. - public E get(int index):返回集合中指定位置的元素。
  14. - public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
  15. - public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
  16. 注意:
  17. 操作索引的时候,一定要防止索引越界异常
  18. IndexOutOfBoundsException:索引越界异常,集合会报
  19. ArrayIndexOutOfBoundsException:数组索引越界异常
  20. StringIndexOutOfBoundsException:字符串索引越界异常
  21. */
  22. public class Demo01List {
  23. public static void main(String[] args) {
  24. //创建一个List集合对象,多态
  25. List<String> list = new ArrayList<>();
  26. //使用add方法往集合中添加元素
  27. list.add("a");
  28. list.add("b");
  29. list.add("c");
  30. list.add("d");
  31. list.add("a");
  32. //打印集合
  33. System.out.println(list);//[a, b, c, d, a] 不是地址重写了toString
  34. //public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。
  35. //在c和d之间添加一个itheima
  36. list.add(3,"itheima");//[a, b, c, itheima, d, a]
  37. System.out.println(list);
  38. //public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。
  39. //移除元素
  40. String removeE = list.remove(2); // 被移除的元素
  41. System.out.println("被移除的元素:"+removeE);//被移除的元素:c
  42. System.out.println(list);//[a, b, itheima, d, a]
  43. //public E set(int index, E element):用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
  44. //把最后一个a,替换为A
  45. String setE = list.set(4, "A"); // 替换
  46. System.out.println("被替换的元素:"+setE);//被替换的元素:a
  47. System.out.println(list);//[a, b, itheima, d, A]
  48. //List集合遍历有3种方式
  49. //使用普通的for循环
  50. for(int i=0; i<list.size(); i++){
  51. //public E get(int index):返回集合中指定位置的元素。
  52. String s = list.get(i);
  53. System.out.println(s);
  54. }
  55. System.out.println("-----------------");
  56. //使用迭代器
  57. Iterator<String> it = list.iterator();
  58. while(it.hasNext()){
  59. String s = it.next();
  60. System.out.println(s);
  61. }
  62. System.out.println("-----------------");
  63. //使用增强for
  64. for (String s : list) {
  65. System.out.println(s);
  66. }
  67. String r = list.get(5);//IndexOutOfBoundsException: Index 5 out-of-bounds for length 5
  68. System.out.println(r);
  69. }
  70. }

add、set、remove、get

还有遍历的三种方式:普通for循环、迭代器、增强for

 

 

ArrayList集合(List子类)

java.util.ArrayList集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。

许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用法是不提倡的。

 

LinkedList集合(List子类)

java.util.LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。

LinkedList是一个双向链表,那么双向链表是什么样子的呢,我们用个图了解下

实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。这些方法我们作为了解即可:

  • public void addFirst(E e):将指定元素插入此列表的开头。

  • public void addLast(E e):将指定元素添加到此列表的结尾。

  • public E getFirst():返回此列表的第一个元素。

  • public E getLast():返回此列表的最后一个元素。

  • public E removeFirst():移除并返回此列表的第一个元素。

  • public E removeLast():移除并返回此列表的最后一个元素。

  • public E pop():从此列表所表示的堆栈处弹出一个元素。

  • public void push(E e):将元素推入此列表所表示的堆栈。

  • public boolean isEmpty():如果列表不包含元素,则返回true。

LinkedList是List的子类,List中的方法LinkedList都是可以使用,这里就不做详细介绍,我们只需要了解LinkedList的特有方法即可。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。(了解即可)

  1. package com.itheima.demo01.List;
  2. import java.util.LinkedList;
  3. public class Demo02LinkedList {
  4. public static void main(String[] args) {
  5. show03();
  6. }
  7. /*
  8. - public E removeFirst():移除并返回此列表的第一个元素。
  9. - public E removeLast():移除并返回此列表的最后一个元素。
  10. - public E pop():从此列表所表示的堆栈处弹出一个元素。此方法相当于 removeFirst
  11. */
  12. private static void show03() {
  13. //创建LinkedList集合对象
  14. LinkedList<String> linked = new LinkedList<>();
  15. //使用add方法往集合中添加元素
  16. linked.add("a");
  17. linked.add("b");
  18. linked.add("c");
  19. System.out.println(linked);//[a, b, c]
  20. //String first = linked.removeFirst();
  21. String first = linked.pop();
  22. System.out.println("被移除的第一个元素:"+first);
  23. String last = linked.removeLast();
  24. System.out.println("被移除的最后一个元素:"+last);
  25. System.out.println(linked);//[b]
  26. }
  27. /*
  28. - public E getFirst():返回此列表的第一个元素。
  29. - public E getLast():返回此列表的最后一个元素。
  30. */
  31. private static void show02() {
  32. //创建LinkedList集合对象
  33. LinkedList<String> linked = new LinkedList<>();
  34. //使用add方法往集合中添加元素
  35. linked.add("a");
  36. linked.add("b");
  37. linked.add("c");
  38. //linked.clear();//清空集合中的元素 在获取集合中的元素会抛出NoSuchElementException
  39. //public boolean isEmpty():如果列表不包含元素,则返回true。
  40. if(!linked.isEmpty()){ // 空则不获取
  41. String first = linked.getFirst();
  42. System.out.println(first);//a
  43. String last = linked.getLast();
  44. System.out.println(last);//c
  45. }
  46. }
  47. /*
  48. - public void addFirst(E e):将指定元素插入此列表的开头。
  49. - public void addLast(E e):将指定元素添加到此列表的结尾。
  50. - public void push(E e):将元素推入此列表所表示的堆栈。此方法等效于 addFirst(E)。
  51. */
  52. private static void show01() {
  53. //创建LinkedList集合对象
  54. LinkedList<String> linked = new LinkedList<>();
  55. //使用add方法往集合中添加元素
  56. linked.add("a");
  57. linked.add("b");
  58. linked.add("c");
  59. System.out.println(linked);//[a, b, c]
  60. //public void addFirst(E e):将指定元素插入此列表的开头。
  61. //linked.addFirst("www");
  62. linked.push("www"); // 等效 addFirst
  63. System.out.println(linked);//[www, a, b, c]
  64. //public void addLast(E e):将指定元素添加到此列表的结尾。此方法等效于 add()
  65. linked.addLast("com");
  66. System.out.println(linked);//[www, a, b, c, com]
  67. }
  68. }

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/752593
推荐阅读
相关标签
  

闽ICP备14008679号