第13周作业集
-
题目
题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
-
源程序
Test.java
1 /** 2 * 文件功能:求两个ArrayList的交集和并集 3 */ 4 import java.util.*; 5 6 public class Test { 7 8 public static void main(String[] args) { 9 // TODO Auto-generated method stub 10 ArrayList<String> a1 = new ArrayList<String>(); 11 ArrayList<String> a2 = new ArrayList<String>(); 12 ArrayList<String> a3 = new ArrayList<String>(); 13 14 a1.add("chen"); 15 a1.add("wang"); 16 a1.add("liu"); 17 a1.add("zhang"); 18 19 a2.add("chen"); 20 a2.add("hu"); 21 a2.add("zhang"); 22 23 System.out.println("交集是"); 24 Jiao j = new Jiao(); 25 j.jiaoji(a1, a2); 26 27 System.out.println("并集是"); 28 Bing b = new Bing(); 29 b.bingji(a1, a2); 30 31 } 32 }
Jiao.javas
1 /** 2 * 1.文件功能:求两个ArrayList的交集 3 * 2.成员变量:无 4 * 3.方法:public void jiaoji(ArrayList<String> a1, ArrayList<String> a2) 5 */ 6 import java.util.ArrayList; 7 8 public class Jiao { 9 public void jiaoji(ArrayList<String> a1, ArrayList<String> a2) { 10 ArrayList<String> a3 = new ArrayList<String>(); 11 int j=a1.size()>a2.size()?a2.size():a1.size(); 12 13 for (int i = 0; i < j; i++) { 14 if (a1.contains(a2.get(i))) 15 a3.add(a2.get(i)); 16 } 17 System.out.println(a3); 18 } 19 }
Bing.java
1 /** 2 * 1.文件功能:求两个ArrayList的并集 3 * 2.成员变量:无 4 * 3.方法:public void bingji(ArrayList<String> a1, ArrayList<String> a2) 5 */ 6 import java.util.ArrayList; 7 import java.util.HashSet; 8 9 public class Bing { 10 public void bingji(ArrayList<String> a1, ArrayList<String> a2) { 11 HashSet h1 = new HashSet(); 12 13 for(int i =0;i<a1.size();i++) { 14 h1.add(a1.get(i)); 15 } 16 for(int i =0;i<a2.size();i++) { 17 h1.add(a2.get(i)); 18 } 19 System.out.println(h1); 20 } 21 }
-
运行结果

-
题目
题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
-
Test.java
1 /** 2 *文件功能:统计输入内容每一种字符的个数并输出 3 */ 4 import java.util.*; 5 6 public class Test { 7 8 public static void main(String[] args) { 9 10 Scanner in = new Scanner(System.in); 11 HashMap h1 = new HashMap(); 12 HashMap h2 = new HashMap(); 13 HashMap h3 = new HashMap(); 14 int count1 = 0; 15 int count2 = 0; 16 int count3 = 0; 17 outHashMap out = new outHashMap(); 18 judge JR = new judge(); 19 String str = in.next(); 20 21 for (int i = 0; i < str.length(); i++) { 22 if (str.charAt(i) >= '0' && str.charAt(i) <= '9') { 23 JR.judge(str, i, h1); 24 count1++; 25 } else if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') { 26 JR.judge(str, i, h2); 27 count2++; 28 } else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') { 29 JR.judge(str, i, h3); 30 count3++; 31 } 32 } 33 34 out.out("数字", h1, count1); 35 out.out("小写字母", h2, count2); 36 out.out("大写字母", h3, count3); 37 } 38 39 }
outHashMap.java
1 /** 2 * 文件功能:遍历传入的HashMap并按照一定格式输出 3 */ 4 import java.util.*; 5 6 7 public class outHashMap { 8 public void out(String str, HashMap h, int count) { 9 Set set = h.entrySet(); 10 Iterator i = set.iterator(); 11 12 if (count == 0) { 13 System.out.print(str + "共——" + count + "个;"); 14 } else 15 System.out.print(str + "共——" + count + "个,分别为:"); 16 17 while (i.hasNext()) { 18 Map.Entry me = (Map.Entry) i.next(); 19 20 System.out.print(" " + me.getKey()); 21 22 if ((int) me.getValue() > 1) { 23 System.out.print("(出现了" + me.getValue() + "次)"); 24 } 25 26 // System.out.println(me.getValue()); 27 } 28 System.out.print(";"); 29 System.out.println(); 30 } 31 }
judge.java
1 /** 2 * 文件功能:判断h是否包含待输入到h中的数据,有的话使该数据的value值加1,没有加入元素作为key值,且value值为1 3 */ 4 import java.util.HashMap; 5 6 public class judge { 7 public void judge(String str, int i, HashMap h) { 8 9 if (h.containsKey(str.charAt(i))) { 10 int temp = (int) h.get(str.charAt(i)); 11 h.put(str.charAt(i), ++temp); 12 13 } else 14 h.put(str.charAt(i), 1); 15 } 16 }
-
运行结果


浙公网安备 33010602011771号