public class Main { public static void main(String[] args) { System.out.println("此题定义了一个数组,数组添加了若干个元素,每个元素可以理解一个运单,每张运单有三个元素,分别是运单号,货主和发票金额,现在要对这批运单进行分组合并开票,分组规则是同一货主才能被分到一组,一张票包含的最大运单数为2 。分好组后对每组运单的开票金额进行累加即为发票的开票金额 。 请写一段代码,在右边控制台打印出每张票的货主和开票金额,比如上海运钢/170 上海运钢/82 江苏运钢/170 江苏运钢/90 "); java.util.ArrayList<String> al = new java.util.ArrayList<>(); al.add("运单1/90"); al.add("运单号1/上海运钢/90"); al.add("运单号2/江苏运钢/90"); al.add("运单号3/上海运钢/80"); al.add("运单号4/上海运钢/82"); al.add("运单号5/江苏运钢/80"); al.add("运单号6/江苏运钢/80"); } }
时间: 2023-02-20 20:19:17 浏览: 96
public static void printGroup(ArrayList<String> al) {
HashMap<String, Integer> map = new HashMap<>();
for (String s : al) {
String[] arr = s.split("/");
String key = arr[1];
int value = Integer.parseInt(arr[2]);
if (map.containsKey(key)) {
map.put(key, map.get(key) + value);
} else {
map.put(key, value);
}
}
for (String key : map.keySet()) {
System.out.println(key + "/" + map.get(key));
}
}
相关问题
package five; public class five { public static void main(String[] args) { try { int a=args.length; System.out.println("\na = "+a); a=22; int b=42/a; int c[]= {1}; c[42]=99; } catch (ArithmeticException e) { System.out.println("发生了被0除: "+e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界: "+e); } finally { System.out.println("finally 语句被执行");} } }请用vector类改写一下
可以使用Vector类来代替数组:
```java
import java.util.Vector;
public class Five {
public static void main(String[] args) {
try {
int a = args.length;
System.out.println("\na = " + a);
a = 22;
int b = 42 / a;
Vector<Integer> c = new Vector<Integer>(1);
c.set(42, 99);
} catch (ArithmeticException e) {
System.out.println("发生了被0除: " + e);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界: " + e);
} finally {
System.out.println("finally 语句被执行");
}
}
}
```
注意,这里使用了Vector类的set方法来设置元素值,因为Vector类没有像数组那样有预先定义的大小。
修改下列代码 public class ForEach1 { public static void main (String args[] ) { int sum = 0; int []nums = {1,2,3,4,5,6,7,8,9,0}; for(【代码】){ //依次遍历数组nums的元素 System.out.println(“数组元素:”+i); sum+=i; } System.out.println(“数组元素和:”+sum); } }
修改代码如下:
public class ForEach1 {
public static void main (String args[] ) {
int sum = 0;
int []nums = {1,2,3,4,5,6,7,8,9,0};
for(int i : nums){ //使用增强型for循环依次遍历数组nums的元素
System.out.println("数组元素:" + i);
sum += i; //累加数组元素到sum变量中
}
System.out.println("数组元素和:" + sum);
}
}
修改后的程序使用增强型for循环遍历数组元素,并累加元素到sum变量中,最后输出数组元素和sum。
阅读全文