题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
代码
1.Test.java
import java.util.HashSet; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub HashSet H1 = new HashSet(); //创建第一个线性表 H1.add("chen"); H1.add("wang"); H1.add("liu"); H1.add("zhang"); System.out.println("线性表1中内容为:"+H1); HashSet H2 = new HashSet(); //创建第二个线性表 H2.add("chen"); H2.add("hu"); H2.add("zhang"); System.out.println("线性表2中内容为:"+H2); HashSet J = new HashSet(); J.addAll(H1); //将第一个线性表中元素加入J线性表中 J.retainAll(H2); //剔除与第二个线性表不相同的元素 System.out.println("交集为:"+J); HashSet B = new HashSet(); B.addAll(H1); //将第一个线性表中元素加入J线性表中 B.addAll(H2); //利用Treeset<E>具有唯一性特点 System.out.println("并集为:"+B); } }
运行结果
题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
代码
1.Test.java
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Test { public static void main(String[] args) { System.out.println("请输入一个字符串"); Scanner reader = new Scanner(System.in); String str = reader.nextLine(); HashMap<String, String> H = new HashMap<String, String>(); //创建散列映射 int num=0; //存储数字个数 int d=0; //存储大写字母字符 int x=0; //存储小写字母个数 for(int i=0;i<str.length();i++){ String str1 = str.substring(i, i+1); if(str1.matches( "\d")){ //判断是否为数字 if(H.get("数字")==null){ H.put("数字", str1); }else{ H.put("数字", H.get("数字")+","+str1); } num++; } if(str1.matches("[a-z]")){ //判断是否为小写字母 if(H.get("小写字母")==null){ H.put("小写字母", str1); }else{ H.put("小写字母", H.get("小写字母")+","+str1); } x++; } if(str1.matches("[A-Z]")){//判大写字母 if(H.get("大写字母")==null){ //判断是否为大写字母 H.put("大写字母", str1); }else{ H.put("大写字母", H.get("大写字母")+","+str1); } d++; } } Set set = H.entrySet(); //返回映射中项的集合 Iterator it = set.iterator(); //用迭代器获取 while(it.hasNext()){ Map.Entry M = (Map.Entry)it.next(); System.out.print(M.getKey()); if(M.getKey().equals("数字")){ System.out.print("——共"+num+"个,"); }else if(M.getKey().equals("小写字母")){ System.out.print("——共"+x+"个,"); }else if(M.getKey().equals("大写字母")){ System.out.print("——共"+d+"个,"); } System.out.println("分别是:"+M.getValue()); } } }
运行结果