0059 Collection接口

 

 

 

 

 

 

 

 

 

import java.util.ArrayList;
import java.util.HashMap;

/*
    集合
    1.可以动态保存任意多个对象,使用方便
    2.提供了一系列方便操作对象的方法:add,remove,set,get....
    3.使用集合添加、删除元素代码更加简洁

    集合体系
    1.Collection(单列集合)重要子接口List,Set
        List
            Vector
            LinkedList
            Arraylist
        Set
            TreeSet
            HashSet

    2.Map(双列集合)存放 K-V
        HashMap
            LinkedHashMap
        Hashtable
            Properties
        TreeMap

 */
@SuppressWarnings({"all"})
public class Collection_ {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        arrayList.add("jack");
        arrayList.add("tom");//单列集合

        HashMap hashMap = new HashMap();
        hashMap.put("NO1", "北京");
        hashMap.put("NO2", "上海");//双列集合
    }
}
import java.util.ArrayList;
import java.util.List;

/*
    Collection接口和常用方法

    public interface Collection<E> extends Iterable<E>
    1.collection实现子类可以存放多个元素,每个元素可以是Object
    2.有些Collection的实现类可以存放重复元素,有些不可以
    3.有些Collection的实现类可以是有序的(List),有些不是有序的(Set)
    4.Collection接口没有直接的实现子类,是通过它的子接口Set和List来实现的

    Collection接口常用方法,以实现子类ArrayList来演示(因为接口不能直接实例化,实现接口的类才能实例化)
    1.add               //添加单个元素
    2.remove            //删除指定元素
    3.contains          //查找元素是否存在
    4.size              //获取元素个数
    5.isEmpty           //判断是否为空
    6.clear             //清空
    7.addAll            //添加多个元素
    8.containsAll       //查找元素是否都存在
    9.removeAll         //删除多个元素
 */
@SuppressWarnings({"all"})
public class Collection02 {
    public static void main(String[] args) {
        List list = new ArrayList();
        //add
        list.add("huang");
        list.add(20);//本质 list.add(new Integer(10))
        list.add(true);
        list.add('C');
        System.out.println("list=" + list);//list=[huang, 20, true, C]

        //remove
        list.remove(0);//删除第一个元素
        list.remove(true);//指定删除某个元素
        System.out.println("list=" + list);//list=[20, C]

        //contains
        System.out.println(list.contains("jack"));//false

        //size
        System.out.println(list.size());//2

        //isEmpty
        System.out.println(list.isEmpty());//false

        //clear
        list.clear();
        System.out.println("list=" + list);//list=[]

        //addAll
        ArrayList list2 = new ArrayList();
        list2.add("tom");
        list2.add("smith");
        list.addAll(list2);
        System.out.println("list=" + list);//list=[tom, smith]

        //containsAll
        System.out.println(list.containsAll(list2));//true

        //removeAll
        list2.removeAll(list);
        System.out.println("list2=" + list2);//list2=[]
    }
}
/*
    Collection接口遍历元素方式

    1.使用Iterator(迭代器)
        1.Iterator对象称为迭代器,主要用于遍历Collection集合中的元素
        2.所有实现了Collection接口的集合类都有iterator()方法,用以返回一个迭代器
        3.Iterator结构
        4.Iterator仅用于遍历集合,本身并不存放对象

        Iterator接口常用方法
        hasNext()       //判断是否还有下一个元素
        next()          //1.指针下移2.将下移后集合位置上的元素返回
        在调用iterator.next()方法之前必须要调用iterator.hasNext()进行检测
        若不调用,如果下一条记录无效,直接调用会抛出NoSuchElementException异常

        步骤
         Iterator iterator = xxx.iterator()//得到一个集合的迭代器
         while(iterator.hashNext()){
            Object xx = iterator.next();
         }
                //当退出while循环后 iterator迭代器指向最后一个元素
                //若想重新遍历,需重置迭代器
                    iterator = xxx.iterator() //重置

    2.使用增强for循环
        增强for循环可以替代iterator迭代器,是简化版的iterator(底层仍是迭代器)
        只能用于遍历集合或数组

        基本语法
        for(元素类型 元素名:集合名或数组名){
                访问元素
        }

 */
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Collection03 {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {

        Collection col = new ArrayList();
        col.add(new Book("西游记","吴承恩",11.11));
        col.add(new Book("三国演义","罗贯中",22.22));
        col.add(new Book("水浒传","施耐庵",33.33));
        System.out.println(col);
        //遍历col集合
        //使用迭代器
        Iterator iterator = col.iterator();//得到col迭代器
        // 使用while循环遍历
        while(iterator.hasNext()){//判断是否还有数据
            Object obj = iterator.next();//返回下一个元素,编译类型是Object,运行类型由存放的数据决定
            System.out.println(obj);
        }
        //重置遍历
        System.out.println("===========重置==========");
        iterator = col.iterator();
        while (iterator.hasNext()) {
            Object obj =  iterator.next();
            System.out.println(obj);
        }
        System.out.println("===========增强for循环==========");
        //使用增强for循环
        for(Object book : col){
            System.out.println(book);
        }
        //增强for循环也可用于数组
        int[] nums = {1,2,3,4,5,6,7};
        for(int i : nums){
            System.out.println(i);
        }
    }
}
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;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                '}';
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

nzmzmc

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

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

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

打赏作者

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

抵扣说明:

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

余额充值