1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package ubic.basecode.dataStructure.matrix;
20
21
22
23
24 public class IntegerMatrix<R, C> extends AbstractMatrix<R, C, Integer> implements PrimitiveMatrix<R, C, Integer> {
25
26 private static final long serialVersionUID = -8413796057024940237L;
27 private ObjectMatrixImpl<R, C, Integer> matrix;
28
29 public IntegerMatrix( int x, int y ) {
30 super();
31 matrix = new ObjectMatrixImpl<>( x, y );
32 }
33
34
35
36
37 @Override
38 public int columns() {
39 return matrix.columns();
40 }
41
42
43
44
45
46
47 public Integer get( int row, int column ) {
48 return matrix.get( row, column );
49 }
50
51 @Override
52 public Integer getByKeys( R r, C c ) {
53 return this.get( getRowIndexByName( r ), getColIndexByName( c ) );
54 }
55
56 @Override
57 public Integer[] getColObj( int col ) {
58 Integer[] result = new Integer[rows()];
59 for ( int i = 0; i < rows(); i++ ) {
60 result[i] = get( i, col );
61 }
62 return result;
63 }
64
65 public Integer[] getColumn( int col ) {
66 Integer[] result = new Integer[rows()];
67 for ( int i = 0; i < rows(); i++ ) {
68 result[i] = get( i, col );
69 }
70 return result;
71 }
72
73 @Override
74 public Integer getEntry( int row, int column ) {
75 return get( row, column );
76 }
77
78 @Override
79 public Integer getObject( int row, int col ) {
80 return get( row, col );
81 }
82
83 public Integer[] getRow( int row ) {
84 Integer[] result = new Integer[columns()];
85 for ( int i = 0; i < columns(); i++ ) {
86 result[i] = get( i, row );
87 }
88 return result;
89
90 }
91
92 @Override
93 public Integer[] getRowObj( int row ) {
94 Integer[] result = new Integer[columns()];
95 for ( int i = 0; i < columns(); i++ ) {
96 result[i] = get( row, i );
97 }
98 return result;
99 }
100
101 @Override
102 public boolean isMissing( int i, int j ) {
103 return get( i, j ) == null;
104 }
105
106
107
108
109 @Override
110 public int rows() {
111 return matrix.rows();
112 }
113
114 @Override
115 public void set( int row, int column, Integer value ) {
116 matrix.set( row, column, value );
117 }
118
119
120
121
122
123
124 @Override
125 public void setByKeys( R r, C c, Integer v ) {
126 this.set( getRowIndexByName( r ), getColIndexByName( c ), v );
127 }
128
129
130
131
132
133
134 public void setObj( int row, int column, Integer value ) {
135 matrix.set( row, column, value );
136 }
137
138
139
140
141 @Override
142 public int size() {
143 return matrix.size();
144 }
145
146
147
148
149 @Override
150 public String toString() {
151 StringBuffer buf = new StringBuffer();
152 buf.append( "label" );
153 for ( int i = 0; i < columns(); i++ ) {
154 buf.append( "\t" + getColName( i ) );
155 }
156 buf.append( "\n" );
157
158 for ( int i = 0; i < rows(); i++ ) {
159 buf.append( getRowName( i ) );
160 for ( int j = 0; j < columns(); j++ ) {
161 buf.append( "\t" + get( i, j ) );
162 }
163 buf.append( "\n" );
164 }
165 return buf.toString();
166 }
167
168 }