Java 为什么应该是int[i]=int[i]&x2B;d在组合键值对的问题上(;合并图表记录)?;
问题是: 数据表包括索引和值(int类型),请将具有相同索引的记录组合在一起,如将具有相同索引的值相加,按升序输出键 输入: 键值对的数目 然后是中间有空格的索引和值对 输出: 组合键值对(多行) 例如: 输入 输出: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
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;ic
是索引(或键),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());
}