Java 为什么应该是int[i]=int[i]&x2B;d在组合键值对的问题上(;合并图表记录)?;

Java 为什么应该是int[i]=int[i]&x2B;d在组合键值对的问题上(;合并图表记录)?;,java,stack,Java,Stack,问题是: 数据表包括索引和值(int类型),请将具有相同索引的记录组合在一起,如将具有相同索引的值相加,按升序输出键 输入: 键值对的数目 然后是中间有空格的索引和值对 输出: 组合键值对(多行) 例如: 输入 输出: 0 3 1 2 3 4 可运行代码如下所示: import java.io.*; import java.util.HashMap; import java.util.Map; public class Main{ public static void main(St

问题是:

数据表包括索引和值(int类型),请将具有相同索引的记录组合在一起,如将具有相同索引的值相加,按升序输出键

输入: 键值对的数目 然后是中间有空格的索引和值对

输出: 组合键值对(多行)

例如: 输入

输出:

0 3
1 2
3 4
可运行代码如下所示:

import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        Map<Integer,Integer> map = new HashMap<>();
        line=br.readLine();
        int[] ints = new int[Integer.valueOf(line)];
        while((line=br.readLine())!=null){
            int a = line.indexOf(" ");//a=1
            int b = line.indexOf(" ",a);//b=3
            Integer c = Integer.valueOf(line.substring(0,a));
            Integer d = Integer.valueOf(line.substring(a+1));
            ints[c] = ints[c]+d;
        }
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<ints.length;i++){
            if(ints[i]!=0){
                sb.append(i).append(" ").append(ints[i]).append("\n");
            }
        }
        sb.deleteCharAt(sb.length()-1);
        System.out.println(sb.toString());
    }

import java.io.*;
导入java.util.HashMap;
导入java.util.Map;
公共班机{
公共静态void main(字符串[]args)引发IOException{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
弦线;
Map Map=newhashmap();
line=br.readLine();
int[]int=new int[Integer.valueOf(line)];
而((line=br.readLine())!=null){
int a=line.indexOf(“”;//a=1
int b=line.indexOf(“,a);//b=3
整数c=整数.valueOf(行.子字符串(0,a));
整数d=整数.valueOf(行.子字符串(a+1));
整数[c]=整数[c]+d;
}
StringBuilder sb=新的StringBuilder();

for(int i=0;i
c
是索引(或键),
d
是值。您要添加所有值。
int[i]
是给定索引处先前值的总和(或
0
如果是该索引的第一次出现)。明白了!!谢谢!!
import java.io.*;
import java.util.HashMap;
import java.util.Map;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        Map<Integer,Integer> map = new HashMap<>();
        line=br.readLine();
        int[] ints = new int[Integer.valueOf(line)];
        while((line=br.readLine())!=null){
            int a = line.indexOf(" ");//a=1
            int b = line.indexOf(" ",a);//b=3
            Integer c = Integer.valueOf(line.substring(0,a));
            Integer d = Integer.valueOf(line.substring(a+1));
            ints[c] = ints[c]+d;
        }
        StringBuilder sb = new StringBuilder();
        for(int i=0;i<ints.length;i++){
            if(ints[i]!=0){
                sb.append(i).append(" ").append(ints[i]).append("\n");
            }
        }
        sb.deleteCharAt(sb.length()-1);
        System.out.println(sb.toString());
    }