Java第13周作业集
一、题目1
创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
二、源代码
package thirteen; import java.util.ArrayList; import java.util.HashSet; public class Test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<String> s1=new ArrayList<String>(); s1.add("cheng"); s1.add("wang"); s1.add("liu"); s1.add("zhang"); System.out.println("线性表一:"+s1); ArrayList<String> s2=new ArrayList<String>(); s2.add("cheng"); s2.add("hu"); s2.add("zhang"); System.out.println("线性表二:"+s2); ArrayList<String> s3=new ArrayList<String>(); s3.addAll(s1); s3.retainAll(s2);//删除两个集合中不同的元素 System.out.println("两个线性表的交集:"+s3); ArrayList<String> s4=new ArrayList<String>(); s4.addAll(s1); s4.addAll(s2); HashSet<String> set=new HashSet<String>();//去除重复 set.addAll(s4); System.out.println("两个线性表的并集:"+set); } }
三、运行结果
一、题目2
编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
二、源代码
package thirteen; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.Set; public class Test2 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub{ int letter=0,lowercase=0,digit=0; Scanner sc = new Scanner(System.in); System.out.println("输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”"); String str = sc.nextLine(); HashMap<Integer, Character> h1=new HashMap<Integer, Character>(); HashMap<Integer, Character> h2=new HashMap<Integer, Character>(); HashMap<Integer, Character> h3=new HashMap<Integer, Character>(); char[] ch=str.toCharArray(); for(int i=0;i<ch.length;i++){//判断是否大写字母 if('A'<ch[i]&&ch[i]<'Z'){ letter++; h1.put(i, ch[i]); } if('a'<ch[i]&&ch[i]<'z'){//判断是否小写字母 lowercase++; h2.put(i, ch[i]); } if(Character.isDigit(ch[i])){//判断是否是数字 digit++; h3.put(i,ch[i]); } } System.out.print("大写字母——共"+letter+"个,分别为"); //Set Map方法,读取出每一个大写字母 Set set1=h1.entrySet(); Iterator iterator1=set1.iterator(); while(iterator1.hasNext()){ Map.Entry map1=(Map.Entry) iterator1.next(); System.out.print(" "+map1.getValue()); } System.out.println(" "); //Set Map方法,读取出每一个小写字母 System.out.print("小写字母——共"+lowercase+"个,分别为"); Set set2=h2.entrySet(); Iterator iterator2=set2.iterator(); while(iterator2.hasNext()){ Map.Entry map2=(Map.Entry) iterator2.next(); System.out.print(" "+map2.getValue()); } System.out.println(); //Set Map方法,读取出每一个数字 System.out.print("数 字——共"+digit+"个,分别为"); Set set3=h3.entrySet(); Iterator iterator3=set3.iterator(); while(iterator3.hasNext()){ Map.Entry map3=(Map.Entry) iterator3.next(); System.out.print(" "+map3.getValue()); } } }
三、运行结果