一、题目1
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
二、代码
Test3.java
/* * 创建一个测试类,声明四个ArrayList对象,存入元素,用方法求出交并集,输出结果 */ package H; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; public class Test3 { public static void main(String[] args) { ArrayList<String> str1=new ArrayList<String>(); ArrayList<String> str2=new ArrayList<String>(); ArrayList<String> str3=new ArrayList<String>(); ArrayList<String> str4=new ArrayList<String>(); str1.add("chen"); str1.add("wang"); str1.add("liu"); str1.add("zhang"); str2.add("chen"); str2.add("hu"); str2.add("zhang"); str3.addAll(str1); str3.retainAll(str2);//删除str1和str2相同元素以外的元素 str4.addAll(str1); str4.addAll(str2); Set set=new HashSet<String>();//去重 set.addAll(str4); System.out.println("集合一:"+str1); System.out.println("集合二:"+str2); System.out.println("两个集合的交集为:"+str3); System.out.println("两个集合的并集为:"+set); } }
三、运行结果
一、题目2
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
二、代码
Test4.java
/* * 创建一个测试类,声明三个列表对象,判断是否为数字,大写字母或小写字母,并计算出个数,输出结果 */ package H; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Test4 { private static String String; public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.println("请输入一个字符串(该串至少由数字、大写字母和小写字母三种字符中的一种构成:"); String str=reader.nextLine(); HashMap<String,String> map = new HashMap<String, String>(); char[] s = str.toCharArray();//将字符串拆开存入数组 int NumberCount = 0,CapitaCount = 0,LowercaseCount = 0; if(str.matches("\w+")){//判断是否输入错误 for(int i=0;i<s.length;i++){ String c=Character.toString(s[i]); if (Character.isDigit(s[i])) { if(map.get("数字")==null){ map.put("数字", c); }else{ map.put("数字", map.get("数字")+","+c);//同键值追加 } NumberCount++;//储存数字个数 } else if (s[i] >= 'A' && s[i] <= 'Z') { if(map.get("大写字母")==null){ map.put("大写字母", c); }else{ map.put("大写字母", map.get("大写字母")+","+c);//同键值追加 } CapitaCount++;//储存大写字母个数 } else if (s[i] >= 'a' && s[i] <= 'z') { if(map.get("小写字母")==null){ map.put("小写字母", c); }else{ map.put("小写字母", map.get("小写字母")+","+c);//同键值追加 } LowercaseCount++;//储存小写字母个数 } } }else{ System.out.println("输入错误"); } Set set = map.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("——共"+NumberCount+"个,"); }else if(me.getKey().equals("小写字母")){ System.out.print("——共"+CapitaCount+"个,"); }else if(me.getKey().equals("大写字母")){ System.out.print("——共"+LowercaseCount+"个,"); } System.out.println("分别是:"+me.getValue()); } } }