org.forester.datastructures.IntMatrix Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of forester Show documentation
Show all versions of forester Show documentation
Applications and software libraries for evolutionary biology and comparative genomics research
The newest version!
package org.forester.datastructures;
import java.util.List;
import org.forester.util.ForesterUtil;
public final class IntMatrix {
private final int _data[][];
private final String _labels[];
public IntMatrix( final int size ) {
_data = new int[ size ][ size ];
_labels = new String[ size ];
}
public IntMatrix( final List labels ) {
final int size = labels.size();
_data = new int[ size ][ size ];
_labels = new String[ size ];
for( int i = 0; i < size; ++i ) {
setLabel( i, labels.get( i ) );
}
}
final public int get( final int x, final int y ) {
return _data[ x ][ y ];
}
final public String getLabel( final int x ) {
return _labels[ x ];
}
final public String getRowAsString( final int x, final char separator ) {
final StringBuilder sb = new StringBuilder();
sb.append( getLabel( x ) );
for( int y = 0; y < size(); ++y ) {
sb.append( separator );
sb.append( get( x, y ) );
}
return sb.toString();
}
final public void inreaseByOne( final int x, final int y ) {
_data[ x ][ y ]++;
}
final public void set( final int x, final int y, final int value ) {
_data[ x ][ y ] = value;
}
final public void setLabel( final int x, final String label ) {
if ( label == null ) {
throw new IllegalArgumentException( "matrix label must not be null" );
}
_labels[ x ] = label;
}
final public int size() {
return _labels.length;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
for( int x = 0; x < size(); ++x ) {
if ( getLabel( x ) != null ) {
sb.append( getLabel( x ) );
sb.append( "\t" );
}
for( int y = 0; y < size(); ++y ) {
sb.append( get( x, y ) );
sb.append( "\t" );
}
sb.append( ForesterUtil.LINE_SEPARATOR );
}
return sb.toString();
}
}