List 接口和常用方法

4.1 List 接口基本介绍

在这里插入图片描述

List.java

package com.xjz.list_;

import java.util.ArrayList;
import java.util.List;

public class List_ {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        //1. List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复【案例】
        List list = new ArrayList();
        list.add("jack");
        list.add("tom");
        list.add("mary");
        list.add("xjz");
        list.add("tom");
        System.out.println("list=" + list);
        //2. List集合中的每个元素都有其对应是顺序索引,即支持索引
        //   get(): 返回此列表中指定位置的元素; 索引是从 0 开始的!
        System.out.println(list.get(3));//xjz
        //3.
    }
}

4.2 List 接口的常用方法

ListMethod.java

package com.xjz.list_;

import java.util.ArrayList;
import java.util.List;

public class ListMethod {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三丰");
        list.add("贾宝玉");
        // void add(int index, Object ele):在 index 位置插入 ele 元素
        // 在index = 1 的位置插入一个对象
        list.add(1,"秋刀鱼");
        System.out.println("list=" + list);
        // boolean addAll(int index,Collection eles):从index位置开始将eles中的所有元素添加进来
        List list2 = new ArrayList();
        list2.add("jack");
        list2.add("tom");
        list.addAll(1,list2);
        System.out.println("list=" + list);
        // Object get(int index):获取指定 index 位置的元素
        System.out.println(list.get(3)); //秋刀鱼
        // int indexOf(Object obj):返回 obj 在集合中首次出现的位置
        System.out.println(list.indexOf("tom")); //2
        // int lastIndexOf(Object obj):返回 obj 在当前集合中末次出现的位置
        list.add("秋刀鱼");
        System.out.println("list=" + list);
        System.out.println(list.lastIndexOf("秋刀鱼")); //5
        // Object remove(int index):移除指定 index 位置的元素,并返回此元素
        list.remove(0);
        System.out.println("list=" + list);
        // Object set(int index, Object ele):设置指定 index 位置的元素为 ele,相当于是替换
        list.set(1,"玛丽");
        System.out.println("list=" + list);
        // List subList(int fromIndex, int toIndex):返回从 fromIndex 到 toIndex 位置的子集合
        // 注意返回的子集合, 包头不包尾!
        List returnList = list.subList(0,2); // [0,2)
        System.out.println("returnList=" + returnList); // [java,玛丽]
    }
}

4.3 List 接口课堂练习


在这里插入图片描述

ListExercise.java

package com.xjz.list_;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListExercise {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        /*
        添加 10 个以上的元素(比如 String "hello" ),在 2 号位插入一个元素"秋刀鱼",
        获得第 5 个元素,删除第 6 个元素,修改第 7 个元素,在使用迭代器遍历集合,
        要求:使用 List 的实现类 ArrayList 完成。
        */
        List list = new ArrayList();
        for (int i = 0; i < 12; i++) {
            list.add("hello" + i);
        }
        System.out.println("list=" + list);
        //在 2 号位插入一个元素"秋刀鱼"
        list.add(1,"秋刀鱼");
        System.out.println("list=" + list);
        //获得第 5 个元素
        System.out.println(list.get(4));
        //删除第 6 个元素
        list.remove(5);
        System.out.println("list=" + list);
        //修改第 7 个元素
        list.set(6,"三国演义");
        System.out.println("list=" + list);

        //在使用迭代器遍历集合
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object obj = iterator.next();
            System.out.println("obj=" + obj);
        }
        
    }
}

4.4 List 的三种遍历方法 [ ArrayList,LinkedList,Vector ]

在这里插入图片描述

ListFor.java

package com.xjz.list_;

import java.util.*;

public class ListFor {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {

        //List list = new ArrayList();
        //List list = new LinkedList();
        List list = new Vector();
        list.add("jack");
        list.add("tom");
        list.add("鱼香肉丝");
        list.add("北京烤鸭子");

        //遍历
        //1. 迭代器
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object obj = iterator.next();
            System.out.println("obj=" + obj);
        }

        System.out.println("=====增强for=====");
        //2. 增强for
        for (Object o : list) {
            System.out.println("o=" + o);
        }

        System.out.println("=====普通for=====");
        //3. 使用普通for
        for (int i = 0; i < list.size(); i++) {
            System.out.println("对象=" + list.get(i));
        }

    }
}

4.5 实现类的课堂练习2

在这里插入图片描述

ListExercise02.java

package com.xjz.list_;

import java.util.*;

@SuppressWarnings({"all"})
public class ListExercise02 {
    public static void main(String[] args) {
        
        //List list = new ArrayList();
        List list = new LinkedList();
        //List list = new Vector();
        list.add(new Book("红楼梦","曹雪芹",100));
        list.add(new Book("西游记","吴承恩",10));
        list.add(new Book("水浒传","施耐庵",9));
        list.add(new Book("三国","罗贯中",80));
        //list.add(new Book("西游记","吴承恩",10));

        //遍历

        for (Object o : list) {
            System.out.println(o);
        }

        //冒泡排序
        sort(list);

        System.out.println("======排序后=======");

        for (Object o : list) {
            System.out.println(o);
        }

    }
    
    //静态方法
    public static void sort(List list) {

        int listSize = list.size();
        for (int i = 0; i < listSize - 1; i++) {
            for(int j = 0; j < listSize - 1 - i;j++){
                //取出对象Book
                Book book1 = (Book)list.get(j);
                Book book2 = (Book)list.get(j+1);
                if(book1.getPrice()>book2.getPrice()){ //交换
                    list.set(j,book2);
                    list.set(j+1,book1);
                }

            }
        }
    }
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xjz_2002

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值