List<E> 、Set<E>和Map<K,E>的简单应用
题目一:
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
代码:
List_Test.java
/**
* 利用List<E>和Set<E>,求交集和并集;
*/
package cn.edu.ccut1;
import java.util.*; public class Test_List { public static void main(String[] args) {
ArrayList<String> L1 = new ArrayList<String>();
ArrayList<String> L2 = new ArrayList<String>();
L1.add("chen");
L1.add("wang");
L1.add("liu");
L1.add("zhang");
L2.add("chen");
L2.add("Hu");
L2.add("zhang");
ArrayList<String> Jj = new ArrayList<String>();
Jj.addAll(L1);
Jj.retainAll(L2); //将Jj中与L2中不相同的元素全部剔除;
System.out.println("交集是:"+Jj.toString());
HashSet<String> Bj = new HashSet<String>();
Bj.addAll(L1);
Bj.addAll(L2); //利用Set<E>唯一性的特点去除重复的元素取得并集;
System.out.println("并集是:"+Bj.toString());
}
}
运行结果:
题目二:
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
代码:
Map_Test.java
package cn.edu.ccut2;
import java.util.*; public class Map_Test { public static void main(String[] args) {
System.out.println("请输入一个字符串:");
HashMap<String, String> M = new HashMap<String, String>();
Scanner r = new Scanner(System.in);
String str = r.nextLine();
int length = str.length();
String c;
int count_num = 0; //统计数字,小写字母,大写字母的个数;
int count_A = 0;
int count_a = 0;
for(int i = 0 ; i < length ; i++){
c = str.substring(i, i+1);
if(c.matches("\\d")){//判断是否为数字;
if(M.get("数字")==null){
M.put("数字", c);
}
else{
M.put("数字", M.get("数字")+","+c);
}
count_num++;
}
if(c.matches("[a-z]")){//判断是否为小写字母;
if(M.get("小写字母")==null){
M.put("小写字母", c);
}
else{
M.put("小写字母", M.get("小写字母")+","+c);
}
count_a++;
}
if(c.matches("[A-Z]")){//判断是否为大写字母;
if(M.get("大写字母")==null){
M.put("大写字母", c);
}
else{
M.put("大写字母", M.get("大写字母")+","+c);
}
count_A++;
}
}
Set set = M.entrySet(); //返回包含映射中项的集合;
Iterator it = set.iterator(); //获取迭代对象;
while(it.hasNext()){
Map.Entry me = (Map.Entry)it.next();
System.out.print(me.getKey());
if(me.getKey().equals("数字")){
System.out.print("——共"+count_num+"个,");
}else if(me.getKey().equals("小写字母")){
System.out.print("——共"+count_a+"个,");
}else if(me.getKey().equals("大写字母")){
System.out.print("——共"+count_A+"个,");
}
System.out.println("分别为"+me.getValue());
}
}
}
运行结果:
List<E> 、Set<E>和Map<K,E>的简单应用的更多相关文章
- cocos基础教程(5)数据结构介绍之cocos2d::Map<K,V>
1.概述 cocos2d::Map<K,V> 是一个内部使用了 std::unordered_map的关联容器模版. std::unordered_map 是一个存储了由key-value ...
- 关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历
//第一种结构Map<K,<List<xxx>>> <body> <% //显示map<String,List<Object>& ...
- JDK源码(1.7) -- java.util.Map<K,V>
java.util.Map<K,V> 源码分析 --------------------------------------------------------------------- ...
- Map<k,v>接口
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html public interface Map<K,V> K—key,V ...
- 随笔1 interface Map<K,V>
第一次写笔记就从map开始吧,如上图所示,绿色的是interface,黄色的是abstract class,蓝色的是class,可以看出所有和图相关的接口,抽象类和类的起源都是interface ma ...
- Cocos2d-x之Map<K, V>
| 版权声明:本文为博主原创文章,未经博主允许不得转载. Map<K, V>是Cocos2d-x 3.0x中推出的字典容器,它也能容纳Ref类型.Map<K,V>是模仿C+ ...
- JS Map 和 List 的简单实现代码
javascript中是没有map和list 结构的. 本篇文章是对在JS中Map和List的简单实现代码进行了详细的分析介绍,需要的朋友参考下 代码如下: /* * MAP对象,实现MAP功能 * ...
- 编写函数求整形数组a中存储的m个不重复的整数的第k大的整数(其中m>=1,1<=k<=m)很简单的一个思路是酱紫的:管他辣么多干啥,上来一把排序然后直接得答案
/** * @author:(LiberHome) * @date:Created in 2019/2/28 20:38 * @description: * @version:$ *//*编写函数求整 ...
- Mybatis返回List<Map<K,V>>
最终映射的字段名 会被作为 hashMap 的 key , <!-- TODO 测试返回 HashMap--> <resultMap id="testResultMap&q ...
随机推荐
- JUC 中的 Atomic 原子类总结
1 Atomic 原子类介绍 Atomic 翻译成中文是原子的意思.在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的.在我们这里 Atomic 是指一个操作是不可中断的.即使是 ...
- 我该如何学习spring源码以及解析bean定义的注册
如何学习spring源码 前言 本文属于spring源码解析的系列文章之一,文章主要是介绍如何学习spring的源码,希望能够最大限度的帮助到有需要的人.文章总体难度不大,但比较繁重,学习时一定要耐住 ...
- mysql 执行计划查看
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈.explain执行计划包含的信息 其中最重要的字段为:id ...
- Java之IO流用法总结
Java的IO流概述:1.I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输.如读/写文件,网络通讯等.2.Java程序中,对于数据的输入/输出操作以“流( ...
- java架构之路(多线程)大厂方式手写单例模式
上期回顾: 上次博客我们说了我们的volatile关键字,我们知道volatile可以保证我们变量被修改马上刷回主存,并且可以有效的防止指令重排序,思想就是加了我们的内存屏障,再后面的多线程博客里还有 ...
- MySQL查询基础
MySQL查询 DQL(Data Query Language ) 1.排序查询 # 语法: select 字段 from 表名 order by 字段1 [降序/升序],字段2 [降序/升序],.. ...
- NMI计算
NMI计算 NMI(Normalized Mutual Information)标准化互信息,常用在聚类中,度量两个聚类结果的相近程度.是社区发现(community detection)的重要衡量指 ...
- 关于neo4j初入门(1)
图形数据库也称为图形数据库管理系统或GDBMS. Neo4j的官方网站:http://www.neo4j.org Neo4j的优点 它很容易表示连接的数据 检索/遍历/导航更多的连接数据是非常容易和快 ...
- java Random类(API)
一.过程 1.导包 2.实例化 3.使用(类的成员方法) 二.作用 生成随机数,与python中random 相似 三.常用方法 1.nextInt(),随机生成int数据类型范围的数 2.nextI ...
- Java入门 - 高级教程 - 06.邮件收发
原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮 ...