题目一.创建两个线性表,分别存储{“chen”,“wang”,“liu”,“zhang”}和{“chen”,“hu”,“zhang”},求这两个线性表的交集和并集。
源代码:
1 package ruanjian;
2 import java.util.*;
3 public class TestMain {
4 public static void main(String[] args) {
5 ArrayList<String> array1=new ArrayList<String>(); //创建ArrayList对象
6 array1.add("chen");
7 array1.add("wang");
8 array1.add("liu");
9 array1.add("zhang"); //向array1中添加元素
10 ArrayList<String> array2=new ArrayList<String>();
11 array2.add("chen");
12 array2.add("hu");
13 array2.add("zhang"); //向array2中添加元素
14 ArrayList<String> jiaoji=new ArrayList<String>(); //创建并集对象
15 ArrayList<String> bingji=new ArrayList<String>(); //创建交集对象
16 System.out.println("两个线性表的并集:");
17 for(int j=0;j<3;j++)
18 {
19 if(array1.contains(array2.get(j))) //判断array1中是否包含array2中的元素
20 {
21 bingji.add(array2.get(j)); //添加arra1中缺少的元素
22 }
23 else
24 continue;
25 }
26 System.out.println(bingji);
27 System.out.println("两个线性表的交集:");
28 jiaoji.addAll(array1);
29 for(int i=0;i<3;i++)
30 {
31 if(jiaoji.contains(array2.get(i))) //判断中是否包含array2中的元素
32 {
33 continue;
34 }
35 else
36 jiaoji.add(array2.get(i));
37 }
38 System.out.println(jiaoji);
39
40 }
41
42 }
运行截图:

题目二. 编写一个应用程序,输入一个字符串,该串至少由数字、大写字母和小写字母三种字符中的一种构成,如“123”、“a23”、“56aD”、“DLd”、“wq”、“SSS”、“4NA20”,对输入内容进行分析,统计每一种字符的个数,并将该个数和每种字符分别输出显示。如:输入内容为“34Ah5yWj”,则输出结果为:数字——共3个,分别为3,4,5;小写字母——共3个,分别为h,y,j;大写字母——共2个,分别为A,W。
源代码:
package ruanjian;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class sc {
public static void main(String[] args) {
int up=0,low=0,dig=0; //变量用于统计字符个数
Scanner reader=new Scanner(System.in);
System.out.println("请输入一个字符串:(至少包括大写字母,小写字母和数字三种样式)");
String s=reader.nextLine(); //输入字符串
char c[]=s.toCharArray(); //将字符串转化为字符数组
Map<String,Integer> map= new HashMap<String,Integer>(); //创建Map<k,v>对象
map.put("小写字母",low); //向HashMap内添加元素
map.put("大写字母",up);
map.put("数字字符",dig);
StringBuffer str1 = new StringBuffer();
StringBuffer str2 = new StringBuffer();
StringBuffer str3 = new StringBuffer();
for(int i=0;i<c.length;i++) {
if(c[i]>='a'&&c[i]<='z')
{
low=map.get("小写字母");
str1.insert(low,c[i]); //将满足条件的字符放入字符串中
map.put("小写字母", ++low); //累加个数
}
if(c[i]>='A'&&c[i]<='Z')
{
up=map.get("大写字母");
str2.insert(up,c[i]);
map.put("大写字母", ++up);
}
if(c[i]>='0'&&c[i]<='9')
{
dig=map.get("数字字符");
str3.insert(dig,c[i]);
map.put("数字字符", ++dig);
}
}
System.out.println("大写字母--"+map.get("大写字母")+"个,分别为:"+str1);
System.out.println("小写字母--"+map.get("小写字母")+"个,分别为:"+str2);
System.out.println("数字字符--"+map.get("数字字符")+"个,分别为:"+str3);
}
}
运行截图:
