一、题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
二、代码
package com; import java.util.ArrayList; import java.util.HashSet; public class Test1 { public static void main(String[] args) { ArrayList a1 = new ArrayList(); // 创建ArrayList对象a1 a1.add("chen"); a1.add("wang"); a1.add("liu"); a1.add("zhang"); ArrayList a2 = new ArrayList(); // 创建ArrayList对象a2 a2.add("chen"); a2.add("hu"); a2.add("zhang"); ArrayList a3 = new ArrayList(); // 创建ArrayList对象a3,求交集 a3.addAll(a1); a3.retainAll(a2); // 删除线性表中除了包含在a2之外的元素 System.out.println("输出交集为:" + a3); ArrayList a4 = new ArrayList(); a4.addAll(a1); a4.addAll(a2); HashSet hs = new HashSet(); // 利用HashSet查重 hs.addAll(a4); System.out.println("输出并集为:" + hs); } }
三、运行结果
一、题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
二、代码
package com; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Test2 { public static void main(String[] args) { Scanner reader = new Scanner(System.in); HashMap hm = new HashMap(); System.out.println("输入一个字符串:"); String s = reader.nextLine(); int figure = 0; int capital = 0; int lowercase = 0; StringBuffer a=new StringBuffer(); StringBuffer b=new StringBuffer(); StringBuffer c=new StringBuffer(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (ch >= '0' && ch <= '9') { figure++; // 计算数字个数 a.append(ch+","); //将获得的字符ch放到a的后面,再加一个逗号分隔 hm.put("数字:", a); //加入到HashMap中 } else if (ch >= 'A' && ch <= 'Z') { capital++; // 计算大写字母个数 b.append(ch+","); //将字符ch放到b的后面,再加一个逗号分隔 hm.put("大写字母:", b); } else if (ch >= 'a' && ch <= 'z') { lowercase++; // 计算小写字母个数 c.append(ch+","); //同上 hm.put("小写字母:", c); } } Set set = hm.entrySet(); // 返回包含映射中项的集合 Iterator t = set.iterator(); // 用Iterator得到HashMap中的项 while (t.hasNext()) { // 显示元素 Map.Entry me = (Map.Entry) t.next(); //输入 System.out.println(me.getKey()); if (me.getKey().equals("数字:")) { //做比较 System.out.println("共" + figure + "个,"); } else if (me.getKey().equals("大写字母:")) { System.out.println("共" + capital + "个"); } else if (me.getKey().equals("小写字母:")) { System.out.println("共" + lowercase + "个"); } System.out.println("分别为:"+me.getValue()); //输出最终获得的内容 } } }