5

おそらく、この質問は私の投稿の前に何度か質問/回答されたと思います。しかし、探しているものを正確に入手できなかったので、もう一度投稿します。

私はこのようにしようとしています:

float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
ArrayList<Float[]> AF = new ArrayList<Float[]>();
AF = Arrays.asList(fa2);

しかし、それはエラーを与えています:

Type mismatch: cannot convert from List<float[]> to ArrayList<Float[]>

エラーの理由は理解していますが、Javaで変換を行うための最も便利な方法は何ですか?

これは私が考えることができる最も簡単な方法です。より良い/より便利なものはありますか?

float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
ArrayList<Float[]> AF = new ArrayList<Float[]>(fa2.length);
for (float[] fa : fa2) {
    //initialize Float[]
    Float[] Fa = new Float[fa.length];
    //copy element of float[] to Float[]
    int i = 0;
    for (float f : fa) {
        Fa[i++] = Float.valueOf(f);
    }
    //add Float[] element to ArrayList<Float[]>
    AF.add(Fa);
}
4

5 に答える 5

6

からに変換float[]するFloat[]ときは、手動で行う必要があります。

float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
ArrayList<Float[]> AF = new ArrayList<Float[]>();
for(float[] fa: fa2) {
    Float[] temp = new Float[fa.length];
    for (int i = 0; i < temp.length; i++) {
        temp[i] = fa[i];
    }
    AF.add(temp);
}

float[]または、ずっと使用している可能性があります。

List<float[]> AF = Arrays.asList(fa2);
于 2013-01-13T15:34:23.280 に答える
2

これは私のために実行されました:

float[][] fa2 = {{7f,2f}, {5f,4f}, {9f,6f}, {4f,7f}, {8f,1f}, {2f,3f}};
List<float[]> AF = Arrays.asList(fa2); 

編集:何らかの理由でfloat[]とFloat[]を混在させる必要がある場合は、ApacheCommonsArrayUtils.toObjectを使用してください

float[][] fa2 = {{7f,2f}, {5f,4f}, {9f,6f}, {4f,7f}, {8f,1f}, {2f,3f}};
List<Float[]> AF = new ArrayList(fa2.length);
for (float[] fa : fa2) {
  AF.add(ArrayUtils.toObject(fa));
}
于 2013-01-13T15:38:58.347 に答える
1

これを行う別の方法:

    float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};

   ArrayList<float[]> AF = new ArrayList<float[]>((Collection<float[]>)Arrays.asList(fa2))

キャストを追加するのを忘れました。修正しました。

于 2013-01-13T15:40:52.920 に答える
0

あなたはこのようにそれをすることができ、あなたは変換する必要はありません:

Float[][] test = {{2f,3f},{3f,4f}};

Javaでネイティブをラップしてオブジェクトに変更できるようにする概念はAutoBoxingと呼ばれ、ここで使用されています。ただし、これを機能させるには、数値が浮動小数点数であると具体的に言うか、(浮動小数点数)でキャストする必要があります。

于 2013-01-13T15:35:42.080 に答える
0

試す

    float[][] fa2 = {{7,2}, {5,4}, {9,6}, {4,7}, {8,1}, {2,3}};
    List<float[]> af = Arrays.asList(fa2);

また

Float[][] fa2 = {{7f,2f}, {5f,4f}, {9f,6f}, {4f,7f}, {8f,1f}, {2f,3f}};
List<Float[]> af = Arrays.asList(fa2);
于 2013-01-13T15:40:36.120 に答える