naturalnumbertable2.java

来自「Java版的SAT求解器」· Java 代码 · 共 113 行

JAVA
113
字号
package positronic.satisfiability.naturalnumbertable;

import java.util.ArrayList;

import positronic.satisfiability.naturalnumber.INaturalNumber;
import positronic.satisfiability.naturalnumber.NaturalNumber;
import positronic.satisfiability.naturalnumbertable.INaturalNumberTable2;

public class NaturalNumberTable2 implements INaturalNumberTable2
{
	/**
   * A static integer which records the number of <tt>NaturalNumberTable</tt>'s 
   * created without specifying a name.
   */
  private static int nNT2Count;
	private ArrayList abscissa;
	private ArrayList entry;
	private String name;
	private ArrayList ordinate;
	
	public NaturalNumberTable2(int entries) throws Exception
	{
		this("NaturalNumberTable2-"+ nNT2Count++,entries);
	}
	
	public NaturalNumberTable2(String name, int entries) throws Exception
	{
		this.name=name;
		this.abscissa=new ArrayList(entries);
		this.ordinate=new ArrayList(entries);
		this.entry=new ArrayList(entries);
		for(int i=0;i<entries;i++)
		{	
			this.abscissa.add(null);
			this.setRow(i,new NaturalNumber(name+"_abscissa_"+i));
			this.ordinate.add(null);
			this.setColumn(i,new NaturalNumber(name+"_ordinate_"+i));
			this.entry.add(null);
			this.setEntry(i,new NaturalNumber(name+"_entry_"+i));
		}
	}
	
	public INaturalNumber getColumn(int i)
	{
		return (INaturalNumber)this.abscissa.get(i);
	}

	public INaturalNumber[] getAbscissaArray()
	{
		return (INaturalNumber[])this.abscissa.toArray(new INaturalNumber[0]);
	}

	public INaturalNumber getEntry(int i)
	{
		return (INaturalNumber)this.entry.get(i);
	}

	public INaturalNumber[] getEntryArray()
	{
		return (INaturalNumber[])this.entry.toArray(new INaturalNumber[0]);
	}

	public String getName()
	{
		return this.name;
	}

	public INaturalNumber getRow(int i)
	{
		return (INaturalNumber)this.ordinate.get(i);
	}

	public INaturalNumber[] getOrdinateArray()
	{
		return (INaturalNumber[])this.ordinate.toArray(new INaturalNumber[0]);
	}

	public void setRow(int i, INaturalNumber in)
	{
		this.abscissa.set(i,in);
	}
	
	public void setEntry(int i, INaturalNumber in)
	{
		this.entry.set(i,in);
		
	}

	public void setName(String name)
	{
		this.name=name;
	}
	
	public void setColumn(int i, INaturalNumber in)
	{
		this.ordinate.set(i,in);
	}
	
	public int size()
	{
		return this.abscissa.size();
	}
	
	public String toString()
  {
    String ret=this.getName()+"\n";
    for(int i=0;i<this.abscissa.size();i++)
    	ret+=this.getRow(i)+","+this.getColumn(i)+","+this.getEntry(i)+"\n";
	  
    return ret;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?