0
public class Main {
public static void main(String[] args) throws FileNotFoundException {
ArrayList<Country> cList = new ArrayList<Country>();
ArrayList choice = new ArrayList();
File inf = new File("src/countrydata.txt");
Scanner scan = new Scanner(inf).useDelimiter("[\t|\n|\r]+");
Scanner s = new Scanner(System.in);
int p = 0;
double g = 0;
while(scan.hasNext()){
cList.add(new Country(scan.next(), scan.nextInt(), scan.nextDouble()));
}
System.out.print("Would you like in sorted my name(n), population(p) or growth(g): ");
String go = s.next();
go = go.toLowerCase();
if(go.equals("n")){
choice.add(go);
}else if(go.equals("p")){
choice.add(p);
}else if(go.equals("g")){
choice.add(g);
}
MyUtil.bubbleSort(cList, choice);
我的錯誤:(線以上)約束不匹配:用的一般方法冒泡(列表,列表)類型的MyUtil不適用於參數(ArrayList,ArrayList)。推斷型國家是不是有界參數的有效替代品> }「推斷類型_____不是有界參數的有效替代品」
//Sort Class
public class MyUtil <E extends Comparable<E>>{
public static <E extends Comparable<E>>void bubbleSort(List<E> list, List choice){
int n = list.size();
boolean swap = true;
while(swap){
swap = false;
for(int i = 0; i < n-1; i++){
if(list.get(i).compareTo(list.get(i+1)) == 1){
swap(list, i, i+1);
swap = true;
}
}
}
}
public static <E extends Comparable<E>>void swap(List<E> list, int i, int j){
E temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
public class Country {
private String name;
private int population;
private double growth;
public Country(String name, int population, double growth){
this.name = name;
this.population = population;
this.growth = growth;
}
public String getName(){return name;}
public int getPopulation(){return population;}
public double getGrowth(){return growth;}
public String toString(){
return name + ", population of " + population + ", with an anual growth of: " + growth + ".";
}
public int compareTo(Country c, String s){
if(name.substring(0, 1).compareTo(c.getName().substring(0, 1)) > 0){
return -1;
}else if(name.substring(0, 1).compareTo(c.getName().substring(0, 1)) == 0){
return 0;
}else{
return 1;
}
}
public int compareTo(Country c, int p){
if(population < c.getPopulation()){
return -1;
}else if(population == c.getPopulation()){
return 0;
}else{
return 1;
}
}
public int compareTo(Country c, double g){
if(growth < c.getGrowth()){
return -1;
}else if(growth == c.getGrowth()){
return 0;
}else{
return 1;
}
}
}
你能爲你的問題選擇更好的標題嗎? – 2014-10-22 02:21:27
我可以,但我是新來的,我真的不知道該怎麼稱呼它:/ – 2014-10-22 02:23:08
你甚至不*使用*你的第二個參數;爲什麼還要去那裏? – Makoto 2014-10-22 02:31:25