2 package org.forester.datastructures;
6 import org.forester.util.ForesterUtil;
8 public final class IntMatrix {
10 private final int _data[][];
11 private final String _labels[];
13 public IntMatrix( final int size ) {
14 _data = new int[ size ][ size ];
15 _labels = new String[ size ];
18 public IntMatrix( final List<String> labels ) {
19 final int size = labels.size();
20 _data = new int[ size ][ size ];
21 _labels = new String[ size ];
22 for( int i = 0; i < size; ++i ) {
23 setLabel( i, labels.get( i ) );
27 final public int get( final int x, final int y ) {
28 return _data[ x ][ y ];
31 final public String getLabel( final int x ) {
35 final public String getRowAsString( final int x, final char separator ) {
36 final StringBuilder sb = new StringBuilder();
37 sb.append( getLabel( x ) );
38 for( int y = 0; y < size(); ++y ) {
39 sb.append( separator );
40 sb.append( get( x, y ) );
45 final public void inreaseByOne( final int x, final int y ) {
49 final public void set( final int x, final int y, final int value ) {
50 _data[ x ][ y ] = value;
53 final public void setLabel( final int x, final String label ) {
54 if ( label == null ) {
55 throw new IllegalArgumentException( "matrix label must not be null" );
60 final public int size() {
61 return _labels.length;
65 public String toString() {
66 final StringBuilder sb = new StringBuilder();
67 for( int x = 0; x < size(); ++x ) {
68 if ( getLabel( x ) != null ) {
69 sb.append( getLabel( x ) );
72 for( int y = 0; y < size(); ++y ) {
73 sb.append( get( x, y ) );
76 sb.append( ForesterUtil.LINE_SEPARATOR );