集合之ArrayList,HashSet,HashMap

结合框架的体系结构:

一、List(列表)

1. List的特点

(1)List是元素有序并且可以重复的集合,称为序列

(2)List可以精确的控制每个元素的插入位置,或删除某个位置的元素

(3)List的两个主要实现类是ArrayList和LinkList

2. ArrayList的特点

(1)ArrayList底层是由数组实现的

(2)动态增长,以满足应用程序的需求

(3)在列比饿哦尾部插入或删除数据非常有效

(4)更适合查找和更新元素

(5)ArrayList中的元素可以为null

在ArrayList中存储并操作字符串信息

例一需求:用ArrayList存储编程语言的名称并输出,名称报告Java,C,C++,Go,Swift

package com.mpp.set;

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

public class ListDemo1 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("java");
        list.add("python");
        list.add("c");
        list.add("swift");

        //输出list中的元素个数
        System.out.println(list.size());
        //遍历输出所有变成语言
        for(int i=0;i<list.size();i++){
            System.out.print(list.get(i)+" ");
        }
        System.out.println();
        //移除Python
//        list.remove(1);  //根据indexof移除
        list.remove("python");   //根据元素内容移除
        for(int i=0;i<list.size();i++){
            System.out.print(list.get(i)+" ");
        }

    }
}

在ArrayList中添加自定义的类的对象

例二需求:公告管理,公告的添加和显示,在指定位置处插入公告,删除公告,修改公告

  公告类属性:编号id,标题title,创建人creator,创建时间createTime

  公告类方法:构造方法,获取和设置属性值的方法(get/set方法)

公告类的代码:

package com.mpp.set;

import java.util.Date;

public class Notice {
    //属性:id,title,crator,creatTime
    private int id;
    private String title;
    private String creator;
    private Date createTime;

    public Notice(){}  //无参构造

    //带参构造
    public Notice(int id,String title,String creator,Date createTime){
        super();
        this.id = id;
        this.title = title;
        this.creator = creator;
        this.createTime = createTime;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

公告管理类的代码:package com.mpp.set;

package com.mpp.set;

import com.sun.tools.corba.se.idl.constExpr.Not;

import java.util.ArrayList;
import java.util.Date;

public class NoticeTest {
    public static void main(String[] args) {
        //创建notice的对象,生成三条公告
        Notice no1 = new Notice(1,"hello word!","admin",new Date());
        Notice no2 = new Notice(2,"交作业!","teacher",new Date());
        Notice no3 = new Notice(3,"考勤通知","teacher",new Date());

        //添加公告
        ArrayList noList = new ArrayList();
        noList.add(no1);
        noList.add(no2);
        noList.add(no3);

        //显示公告
        System.out.println("公告的内容为:");
        for(int i=0;i<noList.size();i++){
            Notice notice = (Notice)(noList.get(i));
            System.out.println(i+1+":"+notice.getTitle());
        }

        System.out.println("************************");

        //在第一条公告后面添加一条新公告
        Notice no4 = new Notice(4,"在线编辑器可以使用了","admin",new Date());
        noList.add(1,no4);
        System.out.println("公告的内容为:");
        for(int i=0;i<noList.size();i++){
            Notice notice = (Notice)(noList.get(i));
            System.out.println(i+1+":"+notice.getTitle());
        }

        System.out.println("************************");

        //删除公告
        noList.remove(2);
        System.out.println("公告的内容为:");
        for(int i=0;i<noList.size();i++){
            Notice notice = (Notice)(noList.get(i));
            System.out.println(i+1+":"+notice.getTitle());
        }

        System.out.println("************************");
        
        //修改公告
        no4.setTitle("修改title:python在线编译器可以使用了");
        noList.set(1,no4);     //我发现有没有这一行都不影响修改后的list的显示
        System.out.println("公告的内容为:");
        for(int i=0;i<noList.size();i++){
            Notice notice = (Notice)(noList.get(i));
            System.out.println(i+1+":"+notice.getTitle());
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/mpp0905/p/10389955.html