集合介绍,List、ArrayList、Set、Iterator(迭代器)

本文对比分析了Java中的ArrayList和HashSet,讲述了ArrayList的动态增长特性、插入删除效率及应用场景,同时介绍了HashSet的无序且唯一特性、哈希集实现以及迭代器的使用。通过实例展示了如何在实际项目中操作这两种集合框架。
摘要由CSDN通过智能技术生成

数组:适用于固定不变的
集合:不断变化的数据,增删频繁数据

集合框架的体系结构:

Collection :类的对象
Map:键值对
在这里插入图片描述
List:
List是元素有序并且可重复的集合,称为序列
List可以精确的控制每个元素的插入位置,或删除某个位置的元素
List的两个主要实现类是 ArrayList和LinkedList

ArrayList:
ArrayList底层是由数组实现的
动态增长,以满足应用程序的需求
在列表尾部插入或删除数据非常有效
更适合查找和更新元素
ArrayList中的元素可以为null

ArrayList的增删改查:

package object;

import java.util.ArrayList;
import java.util.Date;
public class NoticeTest {
    public static void main(String[] args) {
        /**
         * ArrayList的增删改查操作
         */
        //创建对象,生成三条公告
        Notice notice1=new Notice(1,"大家好","管理员1",new Date());
        Notice notice2=new Notice(2,"大家好s","管理员2",new Date());
        Notice notice3=new Notice(3,"大家好ss","管理员3",new Date());
        //添加公告
        ArrayList noticeList=new ArrayList();
        noticeList.add(notice1);
        noticeList.add(notice2);
        noticeList.add(notice3);
        //显示公告
        for (int i=0;i<noticeList.size();i++){
            System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle()+"我是:"+((Notice)(noticeList.get(i))).getCreator());
        }
        //删除公告元素
        noticeList.remove(notice3);
        //显示公告
        for (int i=0;i<noticeList.size();i++){
            System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle()+"我是:"+((Notice)(noticeList.get(i))).getCreator());
        }
        //更改公告元素内容
        notice1.setCreator("我是更新后的哦!");
        noticeList.set(0,notice1);
        //显示公告
        for (int i=0;i<noticeList.size();i++){
            System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle()+"我是:"+((Notice)(noticeList.get(i))).getCreator());
        }
    }
}

Set:set是元素无序并且不可以重复的集合,被称为集
HashSet是Set的一个重要实现类,称为哈希集。
HashSet中的元素无需并且不可重复(当对对象进行添加是时记得重写 HashCode和equals方法)
HashSet中只允许一个null
具有良好的存取和查找性能
其底层是HashSet来实现

Iterator(迭代器)
Iterator接口可以统一的方式对各种集合元素进行遍历
hasNext()方法检测集合中是否还有下一个元素
next()方法返回集合中的下一个元素

package object;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class SetTest {

    public static void main(String[] args) {
        Set set=new HashSet();

        set.add("a");
        set.add("b");
        set.add("c");
        set.add("d");

        //展示集合数据
        Iterator it=set.iterator();
        //遍历迭代器并输出元素
        while(it.hasNext()){
            System.out.print(it.next()+" ");
        }
        System.out.println();
        //插入重复元素不会报错  相比于数组可以减少一些判断处理
        set.add("a");
        it=set.iterator();
        while(it.hasNext()){
            System.out.print(it.next()+" ");
        }

    }




}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值