0

編集:txtドキュメントから読み取った要素を1行ずつ配列リストに追加してから、その配列リストを配列に変換しようとしています。コードでエラーが発生していますが。int [] a = lines.toArray(new int [lines.size()]);は好きではありません。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class insertionSort {

public static void main(String[] args) {
    List<Integer> lines = new ArrayList<Integer>();
    File file = new File("10_Random.txt");

    try {

        Scanner sc = new Scanner(file);
        //int line = null;

        while (sc.hasNextLine()) {
            int i = sc.nextInt();
            lines.add(i);
            //System.out.println(i);
        }
        sc.close();
    } 
    catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    int[] a = lines.toArray(new int[lines.size()]);
}
}

Edit2:chaitanya10に感謝します!すべて修正されました。

4

3 に答える 3

0
int line= null; is wrong,

「nullは、任意のオブジェクト参照型にすることができる特別なリテラルです」。(int、byte、float ...)のようにJavaで割り当てるnullことはできません。初期化しない場合はnullオブジェクト`。primitive variablesnull can only be assigned to objects . remember thatis the default vale for

オブジェクトとしてintにアクセスしたい場合は、を使用しますInteger

Integer line= null;//nowthis would compile

リストを配列に変換するには、これを行います。

List.toArray(T [] t)メソッドはオブジェクトを返します。以下のようにしてください。

Integer[] array = lines.toArray(new Integer[lines.size()])

また、リストはint []配列を受け入れ、intをリストに追加しようとしています。

このようにリスト宣言を変更します

List<Integer> lines = new ArrayLis<Integer>();

配列内の要素を出力するには、配列を反復処理する必要があります

    for(int i=0; i<a.length;i++){
    system.out.println(a[i])
}

あなたはJavaの初心者のようです。ここでJavaベーシックについて読むことを強くお勧めします

于 2012-11-01T22:55:55.907 に答える
0

2つの主な問題。

  • nullに割り当てることはできませんintnullはポインター値でありint、Java の s は常に参照ではなく値によって処理されます。オブジェクトはnull、のようなプリミティブ値にすることができintdoubleできません。

  • あなたの型宣言ArrayListが間違っています。あなたがそれを割り当てる方法では、リストの各要素は s の配列であると予想されますint。私はそれが本当にあなたが望むものだとは思いません.各要素は1つのint値に過ぎないので、リスト全体は配列に似ています.

2 番目の箇条書きは、2 番目と 3 番目のエラーの背後にある理由です。これは、エラー メッセージを最後まで読んだ場合におそらくわかると思います (これは TypeMismatch エラーですよね?)。にパラメーター化されたリストを使用するint[]と、addメソッドは、追加されたすべてのものがタイプであると想定していますint[]。しかしline、だけintです。同様に、このtoArray()メソッドは、リストがパラメータ化された型の配列を返します。配列のリストがあるため、配列の配列toArray()が返されます。この場合の戻り値の型は で、型が一致しないため代入できません。int[][]int[] a

これでコードがコンパイルされるはずですが、検証の他の問題や、入力するたびに心配しなければならないその他の問題には触れません...しかし、今のところ、あなたがすでに入力ファイルを精査しました。

于 2012-11-01T23:09:36.470 に答える
0

IntStream を使用できます。

int[] arr = {15, 13, 7, 4, 1, 10, 0, 7, 7, 12, 15};
List<Integer> arrayList = IntStream.of(arr).boxed().collect(Collectors.toList());
System.out.println(arrayList);
于 2021-03-10T19:39:26.420 に答える