Java基础 9.16

1.Collection练习

package com.logic.collection_;

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

/**
 * @author logic
 * @version 1.0
 */
/*
创建 3个 Dog(name,age)对象,放入到 ArrayList 中,
赋给 List 引用用迭代器和增强for循环两种方式来遍历
重写Dog 的toString方法,输出name和age
 */
public class CollectionExercise {
    public static void main(String[] args) {
        Dog dog1 = new Dog("jack", 3);
        Dog dog2 = new Dog("lucy", 4);
        Dog dog3 = new Dog("jenny", 5);

        List list = new ArrayList();
        list.add(dog1);
        list.add(dog2);
        list.add(dog3);

        //使用增强for
        for (Object dog : list) {
            System.out.println(dog.toString());
        }

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

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 +
                '}';
    }
}

2.List接口基本介绍

List接口是Collection接口的子接口

  • List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复
  • List集合中的每个元素都有其对应的顺序索引,即支持索引
  • List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素
  • JDK API中List接口的实现类有很多,查阅JDK文档 常用的有:ArrayList LinkedList Vector
package com.logic.list_;

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

/**
 * @author logic
 * @version 1.0
 */
public class List_ {
    public static void main(String[] args) {
        //1. List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复 [案例]
        List list = new ArrayList();
        list.add("jack");
        list.add("tom");
        list.add("mary");
        list.add("L0g1c");
        list.add("tom");
        System.out.println("list=" + list);
        //2. List集合中的每个元素都有其对应的顺序索引,即支持索引
        //   索引是从0开始的
        System.out.println(list.get(3));//logic
    }
}

3.List接口的常用方法

package com.logic.list_;

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

/**
 * @author logic
 * @version 1.0
 */
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元素
        //在index = 1的位置插入一个对象
        list.add(1, "L0g1c");
        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位置的元素
        //说过
//        int indexOf(Object obj):返回obj在集合中首次出现的位置
        System.out.println(list.indexOf("tom"));//2
//        int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
        list.add("L0g1c");
        System.out.println("list=" + list);
        System.out.println(list.lastIndexOf("L0g1c"));
//        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位置的子集合
        // 注意返回的子集合 fromIndex <= subList < toIndex
        List returnlist = list.subList(0, 2);
        System.out.println("returnlist=" + returnlist);

    }
}

4.List接口课堂练习

package com.logic.list_;

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

/**
 * @author logic
 * @version 1.0
 */
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号位插入一个元素"logic"
        list.add(1, "logic");
        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);
        }
    }
}

5.List的三种遍历方式(ArrayList LinkedList Vector)       

package com.logic.collection_;

import java.util.*;

/**
 * @author logic
 * @version 1.0
 */
public class ListFor {
    @SuppressWarnings("all")
    public static void main(String[] args) {
        List list = new ArrayList();
        //如果换为LinkedList & Vector的运行类型都可以
        list.add("jack");
        list.add("logic");
        list.add("lucy");
        list.add("文化苦旅");

        //第一种 迭代器
        System.out.println("===下面是迭代器===");
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object obj = iterator.next();
            System.out.println(obj);
        }

        //第二种 增强for
        System.out.println("===下面是增强for===");
        for (Object obj : list) {
            System.out.println(obj);
        }

        //第三种 普通for
        System.out.println("===下面是普通for===");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值