2011-04-29 12 views
0

私の質問は、nullの場合は場所をチェックし、自分の方法で2次元のString配列の場合はnullに設定することができます。Java Langの2次元配列

String [][] xx=new String [][] 
public void set(int a,int b) 
    { 
xx[a][b]=null;//setting null 
} 
. 
. 
. 
. 
. 
if(xx[a][b]==null)//check if null 
    ///some codes 

は、それは可能ですか?それともit.?Regardsを行うには間違った場合、どのように...

+1

試してみると分かります。 – Martin

+0

試しましたが、うまくいきませんでしたか?そうでなければ、それはすべきであり、何かが問題になるかもしれません。 – Zirak

答えて

1

はい。これはオブジェクトの配列です(実際にはメモリアドレスの配列だけですが、アドレスを0に設定するので、実際にはnullに設定できます)。しかし、intなどのプリミティブ型の2次元配列を持つ場合、位置をnullに設定することはできません。

+0

それでは、文字列にも適用できないのですか?それで、forループでit.deletingする方法は? – Cole

+1

Stringオブジェクトでうまく動作します。大文字で始まるすべての標準型はオブジェクトです(独自のクラスの場合は、この規則に従う必要があります)。 'int'や' double'のような小文字で始まるすべての標準型はプリミティブです。 –

0

アレイに含まれる要素の数を指定する必要があります。手動でelemntsをnullに設定する必要はありません。

public class Dim2AR 
{ 
    // String [][] xx = new String [][]; 
    String [][] xx = new String [20][20]; 

    public void set (int a, int b) 
    { 
     xx[a][b] = null; 
    } 

    public void set (int a, int b, String v) 
    { 
     xx[a][b] = v; 
    } 

    public Dim2AR() 
    { 
     check (3, 3); 
     set (3, 3); 
     check (4, 3); 
     set (4, 3, "foo"); 
     check (4, 3); 
    } 

    public static void main (String args[]) 
    { 
     new Dim2AR(); 
    } 

    public void check (int a, int b) 
    { 
     if (xx[a][b] != null) System.out.println ("> " + xx[a][b]); 
     else System.out.println ("-"); 
    } 
}