题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.IntStream; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String data1 = in.nextLine(); String data2 = in.nextLine(); //123 456 786 453 46 7 5 3 665 453456 745 456 786 453 123 String[] datas = data1.substring(data1.indexOf(" ")+1).split(" "); //0 3 6 Integer[] searchDatas = Arrays.stream(data2.substring(data2.indexOf(" ") + 1).split(" ")).map(Integer::valueOf).distinct().sorted().toArray(Integer[]::new); Map<String, List> logMap = new LinkedHashMap<>(); IntStream.range(0,searchDatas.length).forEach(a->{ IntStream.range(0,datas.length).forEach(index -> { if(datas[index].contains(String.valueOf(searchDatas[a]))){ if(logMap.get(String.valueOf(searchDatas[a]))==null || logMap.get(String.valueOf(searchDatas[a])).size() == 0){ List list = new ArrayList(); list.add(index); list.add(datas[index]); logMap.put(String.valueOf(searchDatas[a]),list); }else { logMap.get(String.valueOf(searchDatas[a])).add(index); logMap.get(String.valueOf(searchDatas[a])).add(datas[index]); } } }); }); System.out.print(logMap.entrySet().size() * 2 + logMap.values().stream().map(a->a.size()).reduce(Integer::sum).get() + " "); logMap.entrySet().stream().forEach(a-> { System.out.print(a.getKey()+" "+a.getValue().size()/2+" "); a.getValue().stream().forEach(b->System.out.print(b+" ")); }); System.out.println(); } }