Java学习笔记10:集合
程序员文章站
2022-04-10 23:27:37
...
应用场景
- 无法预测存储数据的数量
- 同时存储具有一对一关系的数据
- 需要进行数据的增删
- 数据重复问题(set不允许插入重复数据)
List(列表)
- 是元素有序并且可以重复的集合
- 可以精确控制每个元素的插入或删除某个位置
- 主要实现类是ArrayList和LinkedList
ArrayList
- 底层由数组实现
- 动态增长,以满足应用程序的需求
- 在列表尾部插入或删除数据非常有效
- 更适合查找和更新元素
- ArrayList中的元素可以为null
package com.imooc.set;
import java.util.ArrayList;
import java.util.Date;
public class NoticeTest {
public static void main(String[] args) {
//创建Notice类的对象,生成三条公告
Notice notice1 = new Notice(1,"欢迎来到慕课网","管理员", new Date());
Notice notice2 = new Notice(2,"请同学们按时提交作业","老师", new Date());
Notice notice3 = new Notice(3,"考勤通知","老师", new Date());
//添加公告
ArrayList noticeList = new ArrayList();
noticeList.add(notice1);
noticeList.add(notice2);
noticeList.add(notice3);
//在第一条公告后面添加一条新公告
Notice notice4=new Notice(4,"在线编辑器可以使用啦!","管理员",new Date());
noticeList.add(1,notice4);
//显示公告
System.out.println("公告的内容为:");
for(int i = 0; i < noticeList.size(); i ++) {
System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle());
}
System.out.println("*******************");
//删除按时完成作业的公告
noticeList.remove(2);
//显示公告
System.out.println("删除公告后的内容为:");
for(int i = 0; i < noticeList.size(); i ++) {
System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle());
}
//将第二条公告改为:Java在线编辑器可以使用啦!
System.out.println("************************");
//修改第二条公告中title的值
notice4.setTitle("Java在线编辑器可以使用啦!");
noticeList.set(1,notice4);
System.out.println("修改后公告的内容为:");
for(int i = 0; i < noticeList.size(); i ++) {
System.out.println(i+1+":"+((Notice)(noticeList.get(i))).getTitle());
}
}
}
公告的内容为:
1:欢迎来到慕课网
2:在线编辑器可以使用啦!
3:请同学们按时提交作业
4:考勤通知
删除公告后的内容为:
1:欢迎来到慕课网
2:在线编辑器可以使用啦!
3:考勤通知
修改后公告的内容为:
1:欢迎来到慕课网
2:Java在线编辑器可以使用啦!
3:考勤通知
Set
HashSet
- HashSet是Set的一个重要实现类,称为哈希集
- HashSet中的元素无序并且不可以重复
- HashSet中允许一个null元素
- 具有良好的存取和查找性能
Iterator(迭代器)
Iterator接口可以以统一的方式对各种集合元素进行遍历
hasNext(方法)检测集合中是否还有下一个元素
next()方法返回集合中的下一个元素
迭代器的遍历流程
package com.imooc.set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class WordDemo {
public static void main(String[] args) {
//将英文单词添加到HashSet中
Set set = new HashSet();
//向集合中添加元素
set.add("blue");
set.add("red");
set.add("black");
set.add("yellow");
set.add("white");
//显示集合的内容
System.out.println("集合中的元素为:");
Iterator it = set.iterator();
//遍历迭代器并输出元素
while(it.hasNext()) {
System.out.print(it.next()+" ");
}
//在集合中插入一个新的单词
//set.add("green");
//set中的插入顺序不是顺序,不允许插入重复
set.add("white");
it = set.iterator();
//遍历迭代器并输出元素
System.out.println("***************");
System.out.println("插入重复元素后的输出结果为:");
while (it.hasNext()) {
System.out.print(it.next()+ " ");
}
}
}
集合中的元素为:
red blue white black yellow ***************
插入重复元素后的输出结果为:
red blue white black yellow
案例:宠物猫信息管理
需求
添加和显示宠物猫信息
查找某只宠物猫的信息并输出
修改宠物猫的信息
删除宠物猫的信息
属性:
- 名字 name
- 年龄 month
- 品种 species
方法
- 构造方法
- 获取和设置属性值的方法
- 其他方法
推荐阅读