18.编写一个程序,接收以克为单位的一包茶叶的单位重量、卖出的包数和每克的价格,计算并显示出销售的总额。其中三个数据一行输入,数据间用“-”分隔。比如:输入“3-100-2.1”,表示每包的重量为3克,共卖出100包,每克的价格为2.1元。此时的销售总额为630元。
参考代码:
import java.util.Scanner;
public class Ex18 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println(“请依次输入重量、包数、价格,并以-分隔:“);
String strIn=scan.nextLine();
Scanner sc=new Scanner(strIn);
sc.useDelimiter(“-”); //设置分隔符
int num=sc.nextInt();
int bag=sc.nextInt();
float price=sc.nextFloat();
double total=price*num*bag;
System.out.println(“销售总额为:“+total);
}
}
19.编写一个泛型方法,能够返回一个int类型数组的最大值和最小值、String类型数组的最大值和最小值(按字典排序)。
参考代码:
class Pair<T>{
private T min;
private T max;
public Pair() { min = null; max = null; }
public Pair(T min, T max) { this.min = min; this.max = max; }
public T getMin() { return min; }
public T getMax() { return max; }
public void setMin(T newValue) { min = newValue; }
public void setMax(T newValue) { max = newValue; }
}
class ArrayAlg {
public static <T extends Comparable> Pair<T> minmax(T[ ] a) {
if (a == null || a.length == 0) {
return null;
}
T min = a[0];T max = a[0];
for (int i = 1; i < a.length; i++) {
if (min.compareTo(a[i]) > 0) {min = a[i];}
if (max.compareTo(a[i]) < 0) { max = a[i];}
}
return new Pair<T>(min, max);
}
}
public class Ex19 {
public static void main(String[] args) {
//测试整型数组
Integer[] arrI={1,2,3,4,5,6};
Pair<Integer> p1=ArrayAlg.minmax(arrI);
System.out.println(“整型数组的最小值:“+p1.getMin().intValue());
System.out.println(“整型数组的最大值:“+p1.getMax().intValue());
//测试字符串数组
String[ ] words ={“able”,”word”,”excel”,”course”,”java”,”c#”};
Pair<String> p2=ArrayAlg.minmax(words);
System.out.println(“字符串数组的最小值:“+p2.getMin());
System.out.println(“字符串数组的最大值:“+p2.getMax());
}
}
20.编写一个泛型方法,接受对象数组和集合作为参数,将数组中的对象加入集合中。并编写代码测试该方法。
参考代码:
import java.util.*;
public class Ex20 {
static <T> void fromArrayToCollection(T[]a, Collection<T> c){
for (T o : a){
c.add(o);
}
}
public static void main(String[] args) {
Integer[] ia = new Integer[100];
Collection<Number> cn = new ArrayList<Number>();
fromArrayToCollection(ia, cn);// T是Number类型
System.out.println(cn);
}
}