7
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Collection;

public class ClearlyAnArrayList
{
    public static void main(String[] args){
        Scanner kb=new Scanner(System.in);
        ArrayList<Integer>ints=new ArrayList<Integer>();
        int num=kb.nextInt();
            while(num!=-1){
            ints.add(num);
            }
    sortPrint(ints);
}

    public static void sortPrint(Collection<Integer>ints){
        Collections.sort(ints);
        for(Integer i:ints){
        System.out.printf("%d\n",i);
        }
}
}

これは私が blueJ でコンパイルしているコードです。これをコンパイルすると、" no suitable method for sort(java.util.Collection<java.lang.Integer>)" で始まる長いエラーが発生し、その後、理解できない内容が続きます。

これに対する解決策は、コレクションではなくリストをCollections.sort()期待するリストを使用していたことでした

importまた、すべてのユーティリティに対して単数のステートメントよりも良い方法はありますか?

与えられた解決策は

import java.util.*;
4

4 に答える 4

7

Collections.sortListは aと notを期待するので、メソッドCollectionを変更しますsortPrint

Collection<Integer>ints

List<Integer> ints

オフトピック:

インターフェイスへの具体的なクラス プログラムに直接取り組む代わりに。

好む

List<Integer> ints = new ArrayList<Integer>();

以上

ArrayList<Integer> ints = new ArrayList<Integer>();
于 2012-05-25T04:44:35.077 に答える
2

これを行うだけではどうですか:

public static void sortPrint(List<Integer> ints){
    Collections.sort(ints);
    for(Integer i:ints){
    System.out.printf("%d\n",i);
    }

Collections.sort()のみですList

于 2012-05-25T04:44:35.387 に答える
0

あなたの輸入のために

import java.util.*;

sort メソッドはコレクションではなくリストをソートするため、宣言を次のように変更します。

public static void sortPrint(List<Integer> ints)

挿入中に自分自身をソートするコレクションを持つこともできます。プログラムは次のようになります。

public static void main(String[] args){
        Scanner kb=new Scanner(System.in);
        TreeSet<Integer>ints=new TreeSet<Integer>();
        int num=kb.nextInt();
        while(num!=-1){
            ints.add(num);
        }
        //already sorted
    }

警告、セット (およびツリーセット) では、同じ要素を 2 回持つことはできません

于 2012-05-25T04:48:16.277 に答える
0

ドキュメントを読んでください (または Ctrl + Space で情報を確認してください)。

java.until.Collectionsドキュメント:こちら

このクラスはCollections.sort(list)とのみをサポートするCollections.sort(list,comparator) ため、 をソートすることはできませんCollectionList代わりに試す

于 2012-05-25T04:48:29.613 に答える