📄 naturalnumbertable.java
字号:
/*
* NaturalNumberTable.java 1.1 05/11/08
*
* Copyright 2005 Positronic Software.
*
*
*/
package positronic.satisfiability.naturalnumbertable;
import positronic.satisfiability.bitstring.IBitString;
import positronic.satisfiability.exceptions.NaturalNumberTableException;
import positronic.satisfiability.naturalnumber.INaturalNumber;
import positronic.satisfiability.naturalnumber.NaturalNumber;
import positronic.satisfiability.naturalnumbertable.INaturalNumberTable;
public class NaturalNumberTable implements INaturalNumberTable
{
/**
* A static integer which records the number of <tt>NaturalNumberTable</tt>'s
* created without specifying a name.
*/
private static int nNTCount;
private INaturalNumber[][] data;
private String name;
public NaturalNumberTable(INaturalNumber[][] data) throws NaturalNumberTableException, CloneNotSupportedException
{
this("NaturalNumberTable-"+ nNTCount++,data);
}
public NaturalNumberTable(int rows, int columns) throws Exception
{
this("NaturalNumberTable-"+ nNTCount++,rows,columns);
}
public NaturalNumberTable(String name, INaturalNumber[][] data) throws NaturalNumberTableException, CloneNotSupportedException
{
if(name==null || "".compareTo(name)==0)
throw new NaturalNumberTableException("Null or empty String passed to a constructor.");
if(data==null)
throw new NaturalNumberTableException("Null INaturalNumber[][] passed to a constructor.");
this.name=name;
this.data=new INaturalNumber[data.length][data[0].length];
for(int i=0;i<data.length;i++)
for(int j=0;j<data[0].length;j++)
this.data[i][j]=(INaturalNumber)((IBitString)data[i][j]).clone();
}
public NaturalNumberTable(String name, int rows, int columns) throws Exception
{
this.name=name;
this.data=new INaturalNumber[rows][columns];
for(int i=0;i<rows;i++)
for(int j=0;j<columns;j++)
this.data[i][j]=new NaturalNumber(name+"_"+i+"_"+j);
}
public INaturalNumber get(int i, int j) throws Exception
{
if(i<0 || j<0 || i>this.getRows()-1 || j>this.getColumns()-1)
throw new NaturalNumberTableException("Index was out of range.");
return this.data[i][j];
}
public int getColumns() throws Exception
{
if(data[0]==null)
throw new NaturalNumberTableException("Null data passed to a constructor.");
return data[0].length;
}
public String getName()
{
return name;
}
public int getRows()
{
return data.length;
}
public boolean isSameSizeAs(INaturalNumberTable n) throws Exception
{
if(this.getRows()!=n.getRows()) return false;
if(this.getColumns()!=n.getColumns()) return false;
return true;
}
public void set(int i, int j, INaturalNumber value) throws Exception
{
if(value==null)
throw new NaturalNumberTableException("Null data passed to a constructor.");
this.data[i][j]=value;
}
public void setName(String name)
{
this.name = name;
}
public String toString()
{
String ret=this.getName()+"\n";
for(int i=0;i<this.getRows();i++)
{
try
{
for(int j=0;j<this.getColumns();j++)
ret+=this.get(i,j)+" ";
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
ret+="\n";
}
return ret;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -