2016-04-11 3 views
-6

の配列を格納:私はこれと同様の方法を用いて、配列リストの配列を保存しようとしてきたのArrayListのJava

static ArrayList<double []> Shapes; 
public static void Test(){ 
    double [] Test = new double [2]; 
    Test[0] = 1; 
    Test[1] = 2; 
    Shapes.add(Test); 
} 

私は、これはあなたができるものであれば、本当にわからないんだけどしかし、誰かがこれをどうやって作業するかを知っていれば、それは非常に高く評価されます。

+1

質問:あなたは何をしますか? – Tunaki

+0

*できるかどうか知りたい場合は、コードをコンパイルしてエラーが発生するかどうか確認してください。 – azurefrog

+0

私はさまざまな図形についての情報を含む配列のリストを持っていると思います。例えば、一辺の長さが10cmの正方形で、その周囲は40cmで、面積は100cmです – Rm45

答えて

0

これは私が推測する最も簡単な方法です:

new ArrayList<Double>(Arrays.asList(Test)) 
+2

これは実際にOPの質問に答えるものではありません。 – robotlos

3

あなたはいくつかの点で(またはいくつかのJavaのバージョンでdouble[]なし)= new ArrayList<double[]>();を呼び出す必要があるため、基本的に、これは動作しません。

さまざまな図形についての情報を保存したい場合は、それらのクラスを作成し、そのクラスのインスタンスを保存することについて考える必要があります。

0

あなたのコードはJava構文ではほぼ正しいように見えますが、Javaの規約は変数とメソッドに小文字の最初の文字を使用するため、スタイルの変更が必要です。そして、他のポスターは、配列を作成するための欠落した「新しいArrayList」を指摘しています。

問題はオブジェクト指向設計の観点から、ダブル[]を使用してと異なる情報を保持することです形状が良いデザインではありません。私はあなたが欲しいと思い、ArrayListの代わりにShapeInfoのArrayListをダブル[]。 ShapeInfoは、さまざまなクラスで実装できるインターフェイスです。このようなことで、各シェイプのさまざまな情報パラメータを持つことができるだけでなく、ループで使用できるすべてのシェイプの共通メソッド(getSummary)を持つことができます。

import java.util.ArrayList; 
import java.util.List; 

public class Shapes { 
    private static List<ShapeInfo> shapes; 

    public static void main(String[] args) { 
     shapes = new ArrayList<>(); 
     ShapeInfo info = new CircleInfo(1, 2, 3); 
     shapes.add(info); 
     // Check what's there 
     for (ShapeInfo shape : shapes) { 
      System.out.println(shape.getSummary()); 
     } 
    } 
} 

interface ShapeInfo { 
    String getSummary(); 
} 

class CircleInfo implements ShapeInfo { 
    private double centreX, centreY, radius; 

    public CircleInfo(double centreX, double centreY, double radius) { 
     this.centreX = centreX; 
     this.centreY = centreY; 
     this.radius = radius; 
    } 

    @Override 
    public String getSummary() { 
     return "Centre is at (" + centreX + "," + centreY + ") and radius is " + radius; 
    } 
} 
関連する問題