Java学习记录之List集合

java.util.List接口 extends Collection接口
List接口的特点:
1.有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)
2.有索引,包含了一些带索引的方法
3.允许存储重复的元素
List接口中带索引的方法(特有):
public void add(int index, E element) :将指定的元素,添加到该集合中的指定位置上
public E get(int index) :返回集合中指定位置的元素
pubic E remove(int index) :移除列表中指定位置的元素,返回的是被移除的元素
public E set(int index, E element) :用指定元素替代集合中指定位置的元素,返回值的更新前的元素

注意:
操作索引的时候,一定要防止索引越界引起的异常
IndexOutOfBoundException:索引越界异常,集合会报
ArrayIndexOutOfBoundException: 数组索引越界异常
StringIndexOutOfBoundException :字符串索引越界异常

public class Demo01List{
   public static void main(String[] args){
      //创建一个List集合对象,多态
      List<String> list = new ArrayList<>();
      //添加元素
      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
      //public void add(int index, E element) :将特定的元素,添加到该集合中的指定位置上
      //在c和d之间添加一个itheima
      list.add(3,"itheima");
       System.out.println(list);//[a,b,c,itheima,d,a]
       //public E remove(int index) :移除列表中指定位置的元素,返回的是被移除的元素
       String rm = list.remove(2);
       System.out.println(rm);//c
       System.out.println(list);//[a,b,itheima,d,a]
       //public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素
       //把最后一个a替换为A
       String se = list.set(4,A);
       System.out.println("被替换的元素:"+se)//被替换的元素:a
       System.out.println(list)//[a,b,itheima,d,A]

       //List集合有三种遍历方式
       //使用普通的for循环
       for(int i=0;i<list.size();i++){
         //public E get(int index) :返回指定位置的元素
         Strnig ge = list.get(i);
         System.out.println(ge);
       }
       //使用迭代器遍历
       Iterator<String> it = list.iterator();
       while(it.hasNext()){
           String s= it.next();
           System.out.println(s);
       }
       //使用增强for循环遍历
       for(String s :list){
           System.out.println(s);
       }
   }
}

TIPS:
java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。
许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种方法是不提倡的

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

public class Demo02LinkedList{
    public static void main(String[] args){
    show01();
    }
    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]
       //public void addFirst(E e) :将指定元素插入此列表的开头
       linked.addFirst("www");//
       //linked.push("www");功能和addFirst一样
       System.out.println(linled);//[www,a,b,c]
       
       //public void addLast(E e) :将指定元素添加到此列表的结尾,此方法等效于add();
       linked.addLast("com");
       System.out.println(linked);//[www,ab,c,com]
    }
    private static void show02(){
       //创建LinkedList集合对象
       LinkedList<String> linked = new LinkedList<>();
       //使用add方法往集合中添加元素
       linked.add("a");
       linked.add("b");
       linked.add("c");
       //**linked.clear()**;是清空集合中所有的元素,再用放过获取集合中的元素就会抛出异常NoSuchElemnetException

       //public boolean isEmpty() :如果列表不包含元素,则返回true
       if(!linked.isEmpty()){
          String first = linked.getFirst();
          System.out.println(first);//a
          String last = linked.getLsat();
          System.out.println(last);//c
       }
    }
    private static void show03(){
       //创建LinkedList集合对象
       LinkedList<String> linked = new LinkedList<>();
       //使用add方法往集合里添加元素
        linked.add("a");
        linked.add("b");
        linked.add("c");
        System.out.println(linked);

        String first = linked.removeFirst();
        System.out.println("被移除的第一个元素:"+first);//被移除的第一个元素:a   此方法等效于 public E pop()方法
         
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值