简单的List的方法,冒泡排序练习及答案,三种遍历方式(java)

List方法:

import java.util.ArrayList;
import java.util.List;
@SuppressWarnings({"all"})
public class ListMethod {
    public static void main(String[] args) {

        List list = new ArrayList();
        list.add("喵喵");
        list.add("雷");

        //void add(int index, Object ele): 在index位置插入ele元素
        list.add(1,"jack");
        System.out.println("list1 = " + list);

        //boolean addAll(int index, Collection eles):从index位置开始将eles所有的元素添加进来
        List list1 = new ArrayList();
        list1.add("金毛狮王");
        list1.add("风鹰侠");
        list.addAll(1,list1);
        System.out.println("list2 = " + list);

        //Object get(int index):获取指定index位置的元素
        System.out.println(list.get(3));

        //int indexOf(Object obj):返回boj在集合中首次出现的位置
        list.add("雷");
        System.out.println("list3 = " + list);
        System.out.println(list.indexOf("雷"));

        //int lastIndexOf(Object obj):返回在当前集合中末次出现的位置
        list.add("jack");
        System.out.println("list4 = " + list);
        System.out.println(list.lastIndexOf("jack"));

        //Object remove(int index):移除指定index位置的元素,并返回此元素
        list.remove(2);
        System.out.println("list5 = " + list);

        //Object set(int index,Object ele):指定index位置的元素为ele , 相当于是替换
        list.set(1,"炎龙");
        System.out.println("list6 = " + list);

        //List subList(int fromIndex, int toIndex):返回从formIndex到toIndex位置的子集合
        //返回的字符串 包前不包后
        List returnList = list.subList(0,6);
        System.out.println("returnList = " + returnList);

    }
}

输出结果:

list1 = [喵喵, jack, 雷]
list2 = [喵喵, 金毛狮王, 风鹰侠, jack, 雷]
jack
list3 = [喵喵, 金毛狮王, 风鹰侠, jack, 雷, 雷]
4
list4 = [喵喵, 金毛狮王, 风鹰侠, jack, 雷, 雷, jack]
6
list5 = [喵喵, 金毛狮王, jack, 雷, 雷, jack]
list6 = [喵喵, 炎龙, jack, 雷, 雷, jack]
returnList = [喵喵, 炎龙, jack, 雷, 雷, jack]

Process finished with exit code 0

List遍历:

遍历方式可以分为三种:迭代器,for循环,增强for循环

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

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

        //List 接口的实现子类 Vector LinkedList
        List list = new ArrayList();
        list.add("jack");
        list.add("tom");
        list.add("重庆");
        list.add("北京");

        //遍历
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            Object obj = iterator.next();
            System.out.println(obj);
        }
        
        //增强for
        for (Object o : list){
            System.out.println("o=" + o);
        }
        
        //普通for循环
        for (int i = 0; i < list.size(); i++) {
            System.out.println("对象 = " + list.get(i));
        }

    }
}

输出结果:

jack
tom
重庆
北京
o=jack
o=tom
o=重庆
o=北京
对象 = jack
对象 = tom
对象 = 重庆
对象 = 北京

Process finished with exit code 0

List排序练习:

使用List实现类添加三本图书,并遍历。按价格排序,从低到高。

先创建一个图书类,里面重写toString方法

public class Book {
    private String name;
    private String author;
    private double price;

    public Book(String name, String author, double price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "名称:" + name + "\t\t价格:" + price +"\t\t作者:" + author;
    }
}

 在ListExercise02里面创建一个静态方法用来排序,使用的是冒泡排序,然后main方法调用,使用增强for打印输出

mport java.util.ArrayList;
import java.util.List;
@SuppressWarnings({"all"})
public class ListExercise02 {

    public static void main(String[] args) {
        List list = new ArrayList();

        list.add(new Book("红楼梦","曹雪芹",100));
        list.add(new Book("西游记","吴承恩",10));
        list.add(new Book("水浒传","施耐庵",19));
        list.add(new Book("三国志","罗贯中",80));
        // 如何对集合进行排
        //遍历
        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 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);
                }
            }
        }
    }
}

最后结果为:

名称:红楼梦		价格:100.0		作者:曹雪芹
名称:西游记		价格:10.0		作者:吴承恩
名称:水浒传		价格:19.0		作者:施耐庵
名称:三国志		价格:80.0		作者:罗贯中
=排序后=
名称:西游记		价格:10.0		作者:吴承恩
名称:水浒传		价格:19.0		作者:施耐庵
名称:三国志		价格:80.0		作者:罗贯中
名称:红楼梦		价格:100.0		作者:曹雪芹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CuteTTU

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

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

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

打赏作者

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

抵扣说明:

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

余额充值