你写的很不错,你很聪明。不过最后一天listC记得按照题意应该倒序输出吧?
- package com.itheima.exam;
- import java.util.ArrayList;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- public class Exam2 {
- /**
- * 题目:已知集合List<String> listA = new ArrayList<String>();
- * listA中有“1234”,“2456”,“3654”,“4765”,“5324”,“6098”,“7890”,“1091”,“2670”对象。
- * 已知集合List<Integer> listB = new ArrayList<Integer>();listB中有1,2,3,4,5,6,7,1,2对象。
- * 现在请:将listA中的对象拆分成单独的数字字符串(也就是将“1234”,拆分成“1”,“2”,“3”,“4”四个对象),
- * 并保存在集合listA中①给listA、listB分别去重②创建新集合List<String> listC = new ArrayList<String>();
- * 将listA和listB中相同(字符相同则相同)的对象保存到listC
- * ③给集合listC按照数字倒序排列,然后输出。
- * */
- public static void main(String[] args) {
- //集合ListA初始化.
- List<String> listA = new ArrayList<String>();
- listA.add("1234");
- listA.add("2456");
- listA.add("3654");
- listA.add("4765");
- listA.add("5324");
- listA.add("6098");
- listA.add("7890");
- listA.add("1091");
- listA.add("2670");
- //1.拆分listA 定义一个临时的集合listT来装.
- List<String> listT = new ArrayList<String>();
- for (String str : listA) {
- for (int i = 0; i < str.length(); i++) {
- String numStr = str.substring(i,i+1);
- // System.out.println(numStr);
- listT.add(numStr);
- }
- }
- System.out.println("分割后的listA:"+listT);
- //1.2去除listA中的重复元素.
- listA=new ArrayList<String>();
- for (int i = 0; i < listT.size(); i++) {
- String str = listT.get(i);
- if (!listA.contains(str)) {
- listA.add(str);
- }
- }
- System.out.println("去除重复元素后的listA:"+listA);
- //集合ListB初始化.listB中有1,2,3,4,5,6,7,1,2对象。
- List<Integer> listB = new ArrayList<Integer>();
- listB.add(1);
- listB.add(2);
- listB.add(3);
- listB.add(4);
- listB.add(5);
- listB.add(6);
- listB.add(7);
- listB.add(1);
- listB.add(2);
- //为了减少代码量,使用另一种方式:Set方式去除重复元素.
- Set<Integer> set=new HashSet<Integer>();
- for (Integer i : listB) {
- set.add(i);
- }
- listB=new ArrayList<Integer>();
- for (Integer i : set) {
- listB.add(i);
- }
- System.out.println("去除重复元素后的listB:"+listB);
- //很快吧,哈哈~
- //②创建新集合List<String> listC = new ArrayList<String>();
- List<String> listC = new ArrayList<String>();
- for (String string : listA) {
- for (Integer temp : listB) {
- Integer integer = Integer.parseInt(string);
- //因为-128<Integer<127,故所以可以直接使用\==\比较
- if (temp==integer) {
- listC.add(string);
- }
- }
- }
- System.out.println("listC结果:"+listC);
- }
- }
复制代码 |