一、ArrayList

package com.imooc.set;

import java.util.ArrayList;
import java.util.List; public class ArrayListDemo { public static void main(String[] args) {
// 用ArrayList存储编程语言的名称,并输出。
//名称包括”Java”、”C”、”C++“、”Go”和”Swift”
List list=new ArrayList();
list.add("Java");
list.add("C");
list.add("C++");
list.add("Go");
list.add("Swift");
//输出列表中元素的个数
System.out.println("列表中元素的个数:"+list.size()); //遍历输出所有编程语言
System.out.println("==========================");
for(int i=0;i<list.size();i++) {
System.out.print(list.get(i)+" ");
}
System.out.println(); //移除列表中的C++
System.out.println("==========================");
// list.remove(2);
list.remove("C++");
System.out.println("移除c++后列表的元素为:");
for(int i=0;i<list.size();i++) {
System.out.print(list.get(i)+" ");
}
System.out.println();
} }

二、案例

  • 需求

-公告的添加和显示

-在指定位置处插入公告

-删除公告

-修改公告

  • 公告类属性

-编号 id

- 标题 title

-创建人 creator

-创建时间 createTime

  • 公告类方法

-构造方法

-获取和设置属性值的方法

package com.imooc.set;

import java.util.Date;

public class Notice {
//Notice类,属性:id,title,creator,ctreaterDate
private int id;
private String title;
private String creator;
private Date creatTime;
//构造方法
public Notice(int id, String title, String creator, Date creatTime) {
super();
this.id = id;
this.title = title;
this.creator = creator;
this.creatTime = creatTime;
}
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 getCreatTime() {
return creatTime;
}
public void setCreatTime(Date creatTime) {
this.creatTime = creatTime;
} }
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,"欢迎来到java世界!","管理员",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);
//显示公告
System.out.println("公告内容为:");
for(int i=0;i<noticeList.size();i++) {
System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
}
} }

3、删除、修改公告

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,"欢迎来到java世界!","管理员",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);
//显示公告
System.out.println("公告内容为:");
for(int i=0;i<noticeList.size();i++) {
System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
}
//再第二条位置新增一条公告
Notice notice4=new Notice(4,"在线编辑器可以使用了","管理员",new Date());
noticeList.add(1,notice4);
//显示公告
System.out.println("======================");
System.out.println("公告内容为:");
for(int i=0;i<noticeList.size();i++) {
System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
}
//删除按时提交作业的公告
noticeList.remove(2);
//显示公告
System.out.println("======================");
System.out.println("公告内容为:");
for(int i=0;i<noticeList.size();i++) {
System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
}
//修改第二条公告的title
notice4.setTitle("JAVA在线编辑器可以使用了!");
noticeList.set(1,notice4);
//显示公告
System.out.println("======================");
System.out.println("公告内容为:");
for(int i=0;i<noticeList.size();i++) {
System.out.println(i+1+":"+((Notice)noticeList.get(i)).getTitle());
}
} }

四、HashSet

常用方法

package com.imooc.set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; public class CatTest { public static void main(String[] args) {
// 定义宠物猫对象
Cat huahua=new Cat("花花",,"英国短毛猫");
Cat fanfan=new Cat("凡凡",,"中华田园猫");
//将宠物猫对象放入HashSet中
Set set=new HashSet();
set.add(huahua);
set.add(fanfan);
//显示宠物猫信息
Iterator it=set.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
//再添加一个与花花属性一样的猫
Cat huahua1=new Cat("花花",,"英国短毛猫");
set.add(huahua1);
System.out.println("=================================");
System.out.println("添加重复数据后的宠物猫信息为:");
//显示宠物猫信息
it=set.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
} }
package com.imooc.set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; /*
* 查找
* 1、在集合中查找花花的信息并输出
* 2、通过名字查找花花的信息
*/ public class CatTest2 { public static void main(String[] args) {
//创建宠物猫对象
Cat huahua=new Cat("花花",,"英国短毛猫");
Cat huahua02=new Cat("花花二代",,"英国短毛猫");
Cat fanfan=new Cat("凡凡",,"中华田园猫");
//将宠物猫对象放到set中.add()
Set set=new HashSet();
set.add(huahua);
set.add(huahua02);
set.add(fanfan); //1、在集合中查找花花的信息并输出.contains()
if(set.contains(huahua)) {
System.out.println("花花找到了!");
System.out.println(huahua);
}else {
System.out.println("花花没有找到!");
} //2、通过名字查找花花的信息
boolean flag=false;
Cat c=null;
Iterator it=set.iterator();
while(it.hasNext()){
c=(Cat)it.next();
if(c.getName().equals("花花")) {
flag=true;
break;
}
}
if(flag) {
System.out.println("花花找到了");
System.out.println(c);
}else {
System.out.println("花花没有找到");
}
} }
package com.imooc.set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set; /*
* 查找
* 1、在集合中查找花花的信息并输出
* 2、通过名字查找花花的信息
*/ public class CatTest2 { public static void main(String[] args) {
//创建宠物猫对象
Cat huahua=new Cat("花花",12,"英国短毛猫");
Cat huahua02=new Cat("花花二代",2,"英国短毛猫");
Cat fanfan=new Cat("凡凡",3,"中华田园猫");
//将宠物猫对象放到set中.add()
Set<Cat> set=new HashSet<Cat>();
set.add(huahua);
set.add(huahua02);
set.add(fanfan); //1、在集合中查找花花的信息并输出.contains()
if(set.contains(huahua)) {
System.out.println("花花找到了!");
System.out.println(huahua);
}else {
System.out.println("花花没有找到!");
} //2、通过名字查找花花的信息
boolean flag=false;
Cat c=null;
Iterator<Cat> it=set.iterator();
while(it.hasNext()){
c=(Cat)it.next();
if(c.getName().equals("花花")) {
flag=true;
break;
}
}
if(flag) {
System.out.println("花花找到了");
System.out.println(c);
}else {
System.out.println("花花没有找到");
} //删除花花二代的信息并重写输出
// for(Cat cat:set) {
// if(cat.getName().equals("花花二代")) {
// set.remove(cat);
// break;
// }
// }
Set<Cat> set1=new HashSet<Cat>();
for(Cat cat:set) {
if(cat.getMonth()<5) {
set1.add(cat);
}
}
set.removeAll(set1);
System.out.println("=================================");
System.out.println("删除花花二代后的宠物猫信息为:");
//显示宠物猫信息
it=set.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
//删除集合中所有宠物猫信息
System.out.println("=================================");
// boolean flag1=set.removeAll(set);
// if(flag1) {
set.removeAll(set);
if(set.isEmpty()) {
System.out.println("猫都不见了!");
}else {
System.out.println("猫还在~~");
}
}
}

五、Map

Map
• Map中的数据是以键值对(key-value)的形式存储的
• key-value以Entry类型的对象实例存在
• 可以通过key值快速地查找value
• 一个映射不能包含重复的键
• 每个键最多只能映射到一个值
 
HashMap
• 基于哈希表的Map接口的实现
• 允许使用null值和null键
• key值不允许重复
• HashMap中的Entry对象是无序排列的
 
案例1
• 完成一个类似字典的功能。
- 将单词以及单词的注释存储到HashMap中
- 显示HashMap中的内容
- 查找某个单词的注释并显示

package com.imooc.set;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set; /*
* 案例1
• 完成一个类似字典的功能。
- 将单词以及单词的注释存储到HashMap中
- 显示HashMap中的内容
- 查找某个单词的注释并显示
*/
public class DictionDemo {
public static void main(String[] args) {
Map<String,String> animal=new HashMap<String,String>();
System.out.println("请输入三组单词对应的注释,并存放到HashMap中:");
Scanner sc=new Scanner(System.in);
//添加数据
for(int i=0;i<3;i++) {
System.out.println("请输入key的值:");
String key=sc.next();
System.out.println("请输入value的值:");
String value=sc.next();
animal.put(key,value);
}
//打印并输出value的值(直接使用迭代器)
System.out.println("======================");
System.out.println("使用迭代器输出所有value:");
Iterator<String> it=animal.values().iterator();
while(it.hasNext()) {
System.out.print(it.next()+" ");
}
System.out.println();
System.out.println("======================");
//打印并输出key-value的值(直接entrySet)
System.out.println("通过entrySet方法获得key-value:");
Set<Entry<String, String>> entrySet=animal.entrySet();
for(Entry<String, String> entry:entrySet) {
System.out.print(entry.getKey()+"-");
System.out.println(entry.getValue());
}
}
}
package com.imooc.set;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set; public class DictionDemo {
public static void main(String[] args) {
Map<String,String> animal=new HashMap<String,String>();
System.out.println("请输入三组单词对应的注释,并存放到HashMap中:");
Scanner sc=new Scanner(System.in);
//添加数据
for(int i=0;i<3;i++) {
System.out.println("请输入key的值:");
String key=sc.next();
System.out.println("请输入value的值:");
String value=sc.next();
animal.put(key,value);
}
//打印并输出value的值(直接使用迭代器)
System.out.println("======================");
System.out.println("使用迭代器输出所有value:");
Iterator<String> it=animal.values().iterator();
while(it.hasNext()) {
System.out.print(it.next()+" ");
}
System.out.println();
System.out.println("======================");
//打印并输出key-value的值(直接entrySet)
System.out.println("通过entrySet方法获得key-value:");
Set<Entry<String, String>> entrySet=animal.entrySet();
for(Entry<String, String> entry:entrySet) {
System.out.print(entry.getKey()+"-");
System.out.println(entry.getValue());
}
System.out.println();
System.out.println("======================");
//通过单词找到注释并输出
//使用keySet方法
System.out.println("请输入要查找的单词:");
String strSearch=sc.next();
//1.获取keySet
Set<String> keySet=animal.keySet();
//2.遍历keySet
boolean flag=false;
for(String key:keySet) {
if(strSearch.equals(key)) {
flag=true;
break;
}
}
if(flag) {
System.out.println("找到了!"+"键值对为:"+strSearch+"-"+animal.get(strSearch));
}else{
System.out.println("抱歉,没有找到!");
}
}
}

案例2:商品信息管理

• 使用HashMap对商品信息进行管理
-其中key为商品编号,value为商品对象
• 对HashMap中的商品信息进行增、删、改、查操作
 
分析商品信息类
• 属性
-商品编号:id
-商品名称:name
-商品价格:price
• 方法
-构造方法
-获取和设置属性值的方法
-其他方法
package com.imooc.set;

public class Goods {
private String id;//商品编号
private String name;//商品名称
private double price;//价格 //构造方法
public Goods(String id, String name, double price) {
super();
this.id = id;
this.name = name;
this.price = price;
}
//getter和setter public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
} @Override
public String toString() {
return "商品编号:" + id + ", 商品名称:" + name + ", 商品价格:" + price;
} }
package com.imooc.set;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner; public class GoodsTest { public static void main(String[] args) {
// 使用HashMap管理商品信息,并实现增删改查
Scanner sc=new Scanner(System.in);
//定义HashMap对象
Map<String,Goods> goodsMap=new HashMap<String,Goods>();
System.out.println("请输入三条商品信息:");
int i=0;
while(i<3) {
System.out.println("请输入第"+(i+1)+"条商品信息:");
System.out.println("请输入商品编号:");
String goodsId=sc.next();
System.out.println("请输入商品名称:");
String goodsName=sc.next();
System.out.println("请输入商品价格:");
double goodsPrice=sc.nextDouble();
Goods goods=new Goods(goodsId,goodsName,goodsPrice);
goodsMap.put(goodsId,goods);
i++;
}
//遍历map输出商品信息
System.out.println("商品的全部信息为:");
Iterator<Goods> it=goodsMap.values().iterator();
while(it.hasNext()){
System.out.println(it.next());
}
} }
package com.imooc.set;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner; public class GoodsTest { public static void main(String[] args) {
// 使用HashMap管理商品信息,并实现增删改查
Scanner sc=new Scanner(System.in);
//定义HashMap对象
Map<String,Goods> goodsMap=new HashMap<String,Goods>();
System.out.println("请输入三条商品信息:");
int i=0;
while(i<3) {
System.out.println("请输入第"+(i+1)+"条商品信息:");
System.out.println("请输入商品编号:");
String goodsId=sc.next();
//判断商品编号是否存在
if(goodsMap.containsKey(goodsId)) {
System.out.println("该商品编号已经存在,请重新输入!");
continue;
}
System.out.println("请输入商品名称:");
String goodsName=sc.next();
System.out.println("请输入商品价格:");
double goodsPrice=0;
try {
goodsPrice=sc.nextDouble();
}catch(Exception e) {
System.out.println("商品价格格式错误,请输入数值型数据!");
sc.next();
continue;
}
Goods goods=new Goods(goodsId,goodsName,goodsPrice);
goodsMap.put(goodsId,goods);
i++;
}
//遍历map输出商品信息
System.out.println("商品的全部信息为:");
Iterator<Goods> it=goodsMap.values().iterator();
while(it.hasNext()){
System.out.println(it.next());
} } }

Java常用工具——java集合的更多相关文章

  1. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  2. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面     本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...

  3. Java常用工具——java字符串

    一.String常用字符串 package com.imooc.string; public class StringDemo { public static void main(String[] a ...

  4. Java常用工具——java异常

    package com.imooc.exception; import java.util.Scanner; public class TryCatchDemo1 { public static vo ...

  5. Java常用工具——java多线程

    一.线程的创建 方式一:继承Thread类,重写run()方法 package com.imooc.thread1; class MyThread extends Thread{ public MyT ...

  6. Java常用工具——java包装类

    一.包装类和基本数据类型 装箱:基本数据类型——包装类 拆箱:包装类——基本数据类型 package com.imooc.wrap; public class WrapTestOne { public ...

  7. JavaEE-实验一 Java常用工具类编程

    该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1.  使用类String类的分割split 将字符串  “Solutions to selected exercises ca ...

  8. Java开发工具类集合

    Java开发工具类集合 01.MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...

  9. Java常用工具+类库合集

    1 常用工具 JVisual vm:可以直接通过软件包下载,支持本地以及远程JVM监控 JMH:Java Microbenchmark Harness,测试基准组件,精度可达纳秒级 JITWatch: ...

随机推荐

  1. python列表-简单操作

    一.下标操作(下标只能是整数,不能是浮点值) 1.用下标取值 (1)取单个值 In [69]: list01 Out[69]: [2, 3, 4, 5, 'b', 'v', 'c', 666] In ...

  2. APM全链路监控--日志收集篇

    一.监控的意义: 随着互联网普及的广度和深度,对于项目的监控显得格外重要:无论是web服务器进程.内存.cpu等资源监控,还是爬虫程序请求频率,状态码以及储存结果的监控,都需要一个及时的反馈机制. 二 ...

  3. [Git] 009 逆转未来

    1. 想逆转未来,得先知道时间线 1.1 git log 1.2 git log --oneline 此命令的显示结果比 git log 简洁 1.3 git reflog 此命令显示的记录比前两者完 ...

  4. Java继承:super关键字、构造器、final用法

    一.继承 继承好处 1.提高代码的重用性 2.提高代码的扩展性和维护性 3.为多态打下了基础 继承类型 继承子类创建对象的过程 二.super关键字的使用 理解:super代表父类的引用,用于访问父类 ...

  5. QT 5.12安装

    QT 5.12为最新的LTS版本,将通过该版本开始QT的学习 1.软件下载 QT5.12下载地址:http://download.qt.io/archive/qt/5.12/ 当前最新版本为5.12. ...

  6. Appium+Python之生成html测试报告

    思考:测试用例执行后,如何生成一个直观漂亮的测试报告呢? 分析:1.unittest单元测试框架本身带有一个textTestRunner类,可以生成txt文本格式的测试报告,但是页面不够直观 2.我们 ...

  7. JWT详解-(JSON Web Token教程)

    JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法. 一.跨域认证的问题 互联网服务离不开用户认证.一般流程是下面这样. 1.用户向服务器发送用户名和密 ...

  8. Reactjs 列表优化的一些心得

    前言 在应用开发中,列表是我们使用频率非常高的一种展现形式,在reactjs项目中更是如此.无处不在的使用更是需要我们小心触发性能瓶颈的深水炸弹. 下面就我最近的总结出的几点心得分享给大家,有什么问题 ...

  9. Javascript | DOM\DOM树浅析

    DOM Document Object Model(文档对象模型) 定义了表示和修改文档所需的方法. DOM对象即为宿主对象,由浏览器厂商定义,用来操作html和xml功能的一类对象的集合.也有人称D ...

  10. MySQL Server类型的MySQL 客户端的下载、安装和使用

    mysql server 5.5的下载 下载地址:https://dev.mysql.com/downloads/mysql/5.0.html#linux mysql server 5.5的安装 双击 ...