第13周作业集

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

  代码:

one类——一个主方法,四个对象

/**
 * 创建了三个ArrayList对象——al:表示一号线性表;bl:表示二号线性表;cl:表示两个线性表的并集
 * 创建了一个HashSet对象——dl:表示两个线性表的交集;
 * 依次判断al和bl之间的元素是否一致,是,将元素放入cl;否,将元素放入dl
 */

package cn.deu.ccut.ThirteenWeek;
import java.util.*;
public class one {
    public static void main(String[] args) {
        ArrayList al=new ArrayList();
        ArrayList bl=new ArrayList();
        ArrayList cl=new ArrayList();//两个线性表的交集对象
        HashSet dl=new HashSet();//两个线性表的并集对象
         al.add("chen");
         al.add("wang");
         al.add("liu");
         al.add("zhang");
         bl.add("chen");
         bl.add("hu");
         bl.add("zhang");
         System.out.println("一号线性表的内容为"+al);
         System.out.println("二号线性表的内容为"+bl);
         
         int a=al.size()<=bl.size()?bl.size():al.size();
         int b=al.size()<=bl.size()?al.size():bl.size();
         
         for(int i=0;i<a;i++) {
             for(int p=0;p<b;p++) {
                  if(al.get(i)==bl.get(p)) {
                      cl.add(al.get(i));
                  }else {
                      dl.add(al.get(i));
                      dl.add(bl.get(p));
                  }
             }
          }
             System.out.println("两个线性表的交集为"+cl);
             System.out.println("两个线性表的并集为"+dl);
    
         
        
    }
}

运行截图:

 

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

   代码:

Two类:一个对象,一个主方法

/**
* 一个对象:TwoHashMap的对象th
* 利用th调用TwoHashMap类的无参构造方法
*/
package cn.deu.ccut.ThirteenWeek;
import java.util.*;
public class Two {

    public static void main(String[] args) {
        Scanner der=new Scanner(System.in);
        System.out.println("输入字符串");
        String st=der.nextLine();//键入字符串
        TwoHashMap th=new TwoHashMap();//创建TwoHashMap的对象th
        th.TwoHashMap(st);//调用TwoHashMap的无返回值构造方法,并传参数值
        
        System.out.println("数字——共"+th.num.size()+"个,分别为:"+th.num);
        System.out.println("小写字母——共"+th.al.size()+"个,分别为:"+th.al);
        System.out.println("大写字母——共"+th.Al.size()+"个,分别为:"+th.Al);
        }
        
    }
        
    

 

TwoHashMap类:四个对象;一个无返回值构造方法

/**
 * 一个HashMap类的对象——hm:存放字符串
 * 三个ArrayList类的对象——num:存放数字;
 *                      Al:存放大写字母;
 *                      al:存放小写字母
 * 
 */
package cn.deu.ccut.ThirteenWeek;
import java.util.*;

public class TwoHashMap {
        HashMap hm=new HashMap();//存放字符串的对象hm
        ArrayList num=new ArrayList();//存放数字的对象num
        ArrayList Al=new ArrayList();//存放大写字母的对象Al
        ArrayList al=new ArrayList();//存放小写字母的对象al
        
        public void TwoHashMap(String st) {
        int i1=st.length();//将字符串st的元素数,赋给i1
        for(int i=0;i<i1;i++) {
            hm.put(i,st.charAt(i));//利用fou循环将字符串内的元素放入hm对象
        }
        
        Set set=hm.entrySet();//调用entrySet()方法返回hm的集合        
        Iterator i=set.iterator();
        while(i.hasNext()) {      //hasNext()判断集合i中有没有未遍历的元素
            Map.Entry me=(Map.Entry)i.next();//(Map.Entry)i.next(),将i集合中未遍历的下一项元素转化为Map.Entry,赋给 Map.Entry  me
            Object a=me.getValue();      //将me集合中选定的映射,其值赋给Object a;
            if((char)a>='0'&&(char)a<='9') {
            num.add(a);  //放入num对象中
            }else {
                if((char)a>='a'&&(char)a<='z') {
                    al.add(a);
                    }else {
                        Al.add(a);
                    }
                }
            }
    }
}

 

运行截图:

posted @ 2019-11-30 11:02  02孙帅群  阅读(171)  评论(0编辑  收藏  举报