【问题标题】:I've just written this class for an n-dimensional array object. Is there any way I can improve it?我刚刚为一个 n 维数组对象编写了这个类。有什么办法可以改进吗?
【发布时间】:2014-02-12 20:05:05
【问题描述】:

如何编写 toString 方法?我该如何改变用户填写数字的方式?

代码如下:

public class NArray
{
  private int[] intArray;
  private NArray[] array;

  public NArray(int n, int size, int fillNum)
  {
    if(n==1)
    {
      intArray = new int[size];

      for(int i=0;i<size;i++)
      {
        intArray[i]=fillNum;
      }
    }
    else
    {
      array=new NArray[size];

      for(int i=0;i<size;i++)
      {
        array[i] = new NArray(n-1,size, fillNum);
      }
    }
  }
}

【问题讨论】:

  • 考虑使用多态性。
  • 你需要那个 n-dim 数组做什么?低内存消耗,因为大量的总数元素?高性能?只有 int 值,还是一般对象?

标签: java arrays recursion


【解决方案1】:

对于填充方法,您可以使用Arrays.fill(参见java API javadocs)。

你想让 toString() 方法做什么?没有规范就无法真正回答那部分。

【讨论】:

    【解决方案2】:

    使用 toString。一个例子如下所示。请参考并实施..:) Happy Coding

    public class Test{ 
    
       public static void main(String args[]){
          Integer x = 5;
    
          System.out.println(x.toString());  
          System.out.println(Integer.toString(12)); 
       }
    }
    

    为了一个棘手的用途..:)

    class Bank
    {
    
    
    String n;
    String add;
     int an;
     int bal;
     int dep;
    
    
    public Bank(String n,String add,int an,int bal)
    {
    
        this.add=add;this.bal=bal;
        this.an=an;this.n=n;
    
    }
    
    public  String toString()
    {
        return "Name of the customer.:" + this.n+",, "+"Address of the customer.:"
                                +this.add +",, "+"A/c no..:"
                                +this.an+",, " +"Balance in A/c..:"+this.bal;
    }
    }
     public class Demo2 
     {
    
    
    public static void main(String[] args) 
    {
    
        List<Bank> l=new LinkedList<Bank>();
    
    
        Bank b1=new Bank("naseem1","Darbhanga,bihar",123,1000);
        Bank b2=new Bank("naseem2","patna,bihar",124,1500);
        Bank b3=new Bank("naseem3","madhubani,bihar",125,1600);
        Bank b4=new Bank("naseem4","samastipur,bihar",126,1700);
        Bank b5=new Bank("naseem5","muzafferpur,bihar",127,1800);
        l.add(b1);
        l.add(b2);
        l.add(b3);
        l.add(b4);
        l.add(b5);
        Iterator<Bank> i=l.iterator();
        while(i.hasNext())
        {
            System.out.println(i.next());
        }
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-28
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 1970-01-01
      • 2011-11-28
      • 2023-03-26
      相关资源
      最近更新 更多