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());
        }
    }
}

三、运行结果

posted @ 2019-12-01 14:44  姓荆的荆  阅读(164)  评论(0编辑  收藏  举报