HJ25 数据分类处理

image
image
答案如下:

package everydayPractice.hash.HJ25;

import java.util.*;

/**
 * Created by chelong on 2026/7/1
 */
public class AnswerMA {
	public static void main(String[] args) {
		ArrayList<String> arrI = new ArrayList<String>();//数据集合I,数据集合I不需要去重用ArrayList
		LinkedHashSet<String> setR = new LinkedHashSet<>();//数据集合R,数据集合J需要去重用LinkedHashSet或者HashSet都可以

		Scanner sc = new Scanner(System.in);
		// 注意 hasNext 和 hasNextLine 的区别
		while (sc.hasNextInt()) { // 注意 while 处理多个 case
			//第一行总过有countOfI个I类型数据,
			int countOfI = sc.nextInt();
			for (int i = 0; i < countOfI; i++) {
				arrI.add(String.valueOf(sc.nextInt()));
			}
			//第二行总过有countOfJ个R类型数据
			int countOfJ = sc.nextInt();
			for (int i = 0; i < countOfJ; i++) {
				setR.add(String.valueOf(sc.nextInt()));
			}
		}
		//把J类型数据重新排序
		ArrayList<String> arrR = new ArrayList<String>();
		for (String s : setR) {
			arrR.add(s);
		}
		arrR.sort(new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				return Integer.parseInt(o1) - Integer.parseInt(o2);
			}
		});

		//满足全部规则的集合
		LinkedList<List<String>> allResult = new LinkedList<List<String>>();
		//先求每一个规则
		int sum = 0;
		int idx = 0;
		for (String r : arrR) {
			//只满足一个R 规则的集合,把每一个的索引和数字保存起来
			LinkedList<String> partOfResult = new LinkedList<String>();
			idx = 0;
			sum = 0;
			for (String i : arrI) {
				if (i.contains(r)) {
					sum++;
					partOfResult.add(String.valueOf(idx));
					partOfResult.add(String.valueOf(i));
				}
				idx++;
			}
			partOfResult.addFirst(String.valueOf(sum));
			partOfResult.addFirst(String.valueOf(r));
			if (sum>0){
				allResult.add(partOfResult);//把每一个满足r规则的单独数据集合组装成大集合
			}
		}

		int allSum = 0;//求整个大集合的数量
		for (List<String> partList : allResult) {
			for (String s : partList) {
				allSum++;
			}
		}
		//输出大集合的数量
		System.out.print(allSum + " ");

		for (List<String> partList : allResult) {
			for (String s : partList) {
				System.out.print(s + " ");
			}
		}
	}
}

结果如下:
image

posted @ 2026-07-01 16:40  Carey_ccl  阅读(10)  评论(0)    收藏  举报