第13周作业集

题目一

  1. 题目

    题目1:创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。

  2. 源程序

    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 }

     

  3. 运行结果

     

题目二

  1. 题目

    题目2:编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。

  2. 源程序

    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 }

     

  3. 运行结果

     

posted @ 2019-11-26 17:09  张博涵  阅读(184)  评论(0)    收藏  举报