List接口和常用方法
  TEZNKK3IfmPf 2023年11月13日 20 0

2. Collection练习  503

1.创建3个Dog {name, age}对象,放入到ArrayList中,赋给List引用

2.用迭代器和增强for循环两种方式来遍历

3.重写Dog的toString方法, 输出name和age

代码在com.stulzl.collection_exercise01.包中

Exercise01

package com.stulzl.collection_exercise01;

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

// Collection练习01  503
//1.创建3个Dog {name, age}对象,放入到ArrayList中,赋给List引用
//2.用迭代器和增强for循环两种方式来遍历
//3.重写Dog的toString方法,输出name和age
public class Exercise01 {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(new Dog("小黑",3));
        list.add(new Dog("小花",7));
        list.add(new Dog("小白",5));

        //使用增强for循环
        for (Object o :list) {
            System.out.println("dog="+o);
        }
        System.out.println("===使用while循环===");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println("dog="+next);
        }
    }
}
class Dog{
    private String name;
    private int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

3. List 接口基本介绍  504

List接口是Collection接口的子接口List java

1) List集合类中元素有序(即添加顺序和取出顺序一致)、 且可重复[案例]

2) List集合中的每个元素都有其对应的顺序索引,即支持索引。[案例]

3) List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。

4) JDK API中List接口的实现类有:

List接口和常用方法

4. List 接口的常用方法

//void add(int index, Object ele):在index位置插入ele元素,在index = 1的位置插入一个对象

//boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来

//Object get(int index):获取指定index位置的元素

//int indexOf(Object obj):返回obj在集合中首次出现的位置

//int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置

//Object remove(int index):移除指定index位置的元素,并返回此元素

// Object set(int index, Object ele):设置指定index位置的元素为ele , 相当于是替换.

// List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合

   注意返回的子集合 fromIndex <= subList < toIndex 即 [0,2)

代码在com.stulzl.list_method.包中

ListMethod

package com.stulzl.list_method;

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

//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("中国"));

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

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

        // List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
        // 注意返回的子集合 fromIndex <= subList < toIndex 即 [0,2)
        List returnlist = list.subList(0, 2);
        System.out.println("returnlist="+returnlist);
    }
}

4.2 List练习  505

添加10个以上的元素(比如String "hello" ),在2号位插入一个元素"韩顺平教育",获得第5个元素,删除第6个元素,修改第7个元素,在使用迭代器遍历集合,要求:使用List的实现类ArrayList完成。

代码在com.stulzl.list_exercise01.包中

ListExercise01

package com.stulzl.list_exercise01;

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

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

        list.add(1,"中国");//插入一个元素"中国"
        System.out.println("list="+list);

        System.out.println(list.get(5));//获得第5个元素

        list.remove(5);//删除第6个元素
        System.out.println("list="+list);

        list.set(6,"世界");
        System.out.println("list="+list);

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

    }
}

 

5. List 的三种遍历方式 

List接口和常用方法

说明:使用LinkedList和Vector完成使用方式和ArrayList 一样

代码在com.stulzl.list_for.包中

ListFor

package com.stulzl.list_for;

import java.util.*;

//List 的三种遍历方式   506
public class ListFor {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        //List 接口的实现子类 Vector LinkedList  ArrayList三者一样操作
        //List list = new LinkedList();
        //List list = new Vector();
        List list = new ArrayList();
        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("list="+obj);
        }

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

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

    }
}

6. List练习 507

使用List的实现类添加三本图书,并遍历,打印如下效果

名称:xx 价格: xx 作者: xx

名称: xx 价格: xx 作者: xx

名称: xx 价格: xx 作者: xx

要求

1)按价格排序,从低到高(使用冒泡法)

2)要求使用ArrayList. LinkedList和Vector三种集合实现

代码在com.stulzl.list_exercise02.包中

ListExercise02

package com.stulzl.list_exercise02;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

//使用List的实现类添加三本图书,并遍历,打印如下效果
//名称:xx价格: xx作者: xx
//名称: xx价格: xx作者: xx
//名称: xx价格: xx作者: xx
//要求
//1)按价格排序,从低到高(使用冒泡法)
//2)要求使用ArrayList. LinkedList和Vector三种集合实现
@SuppressWarnings({"all"})
public class ListExercise02 {
    public static void main(String[] args) {
        List list = new ArrayList();
//        List list = new Vector();
//        List list = new LinkedList();
        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,以备比较
                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);
                }
                //两种写法
//                if(((Book) list.get(j)).getPrice()>((Book) list.get(j+1)).getPrice()){
//                    list.set(j,list.get(j+1));//把价格高的往前调
//                    list.set(j+1,list.get(j));
//                }
            }
        }

    }
}
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 double getPrice() {
        return price;
    }

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

    public String getAuthor() {
        return author;
    }

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

    @Override
    public String toString() {
        return "名称:"+name+"\t\t价格:"+price+"\t\t作者:"+ author;
    }
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   23天前   25   0   0 接口
  TEZNKK3IfmPf   2024年03月29日   60   0   0 list
  TEZNKK3IfmPf   2024年03月29日   33   0   0 listjava数组
TEZNKK3IfmPf