📄 defaultkeyedvalues2d.html
字号:
<FONT color="green">370</FONT> *<a name="line.370"></a><FONT color="green">371</FONT> * @param columnIndex the column index.<a name="line.371"></a><FONT color="green">372</FONT> */<a name="line.372"></a><FONT color="green">373</FONT> public void removeColumn(int columnIndex) {<a name="line.373"></a><FONT color="green">374</FONT> Comparable columnKey = getColumnKey(columnIndex);<a name="line.374"></a><FONT color="green">375</FONT> removeColumn(columnKey);<a name="line.375"></a><FONT color="green">376</FONT> }<a name="line.376"></a><FONT color="green">377</FONT> <a name="line.377"></a><FONT color="green">378</FONT> /**<a name="line.378"></a><FONT color="green">379</FONT> * Removes a column.<a name="line.379"></a><FONT color="green">380</FONT> *<a name="line.380"></a><FONT color="green">381</FONT> * @param columnKey the column key (<code>null</code> not permitted).<a name="line.381"></a><FONT color="green">382</FONT> */<a name="line.382"></a><FONT color="green">383</FONT> public void removeColumn(Comparable columnKey) {<a name="line.383"></a><FONT color="green">384</FONT> Iterator iterator = this.rows.iterator();<a name="line.384"></a><FONT color="green">385</FONT> while (iterator.hasNext()) {<a name="line.385"></a><FONT color="green">386</FONT> DefaultKeyedValues rowData = (DefaultKeyedValues) iterator.next();<a name="line.386"></a><FONT color="green">387</FONT> rowData.removeValue(columnKey);<a name="line.387"></a><FONT color="green">388</FONT> }<a name="line.388"></a><FONT color="green">389</FONT> this.columnKeys.remove(columnKey);<a name="line.389"></a><FONT color="green">390</FONT> }<a name="line.390"></a><FONT color="green">391</FONT> <a name="line.391"></a><FONT color="green">392</FONT> /**<a name="line.392"></a><FONT color="green">393</FONT> * Clears all the data and associated keys.<a name="line.393"></a><FONT color="green">394</FONT> */<a name="line.394"></a><FONT color="green">395</FONT> public void clear() {<a name="line.395"></a><FONT color="green">396</FONT> this.rowKeys.clear();<a name="line.396"></a><FONT color="green">397</FONT> this.columnKeys.clear();<a name="line.397"></a><FONT color="green">398</FONT> this.rows.clear();<a name="line.398"></a><FONT color="green">399</FONT> }<a name="line.399"></a><FONT color="green">400</FONT> <a name="line.400"></a><FONT color="green">401</FONT> /**<a name="line.401"></a><FONT color="green">402</FONT> * Tests if this object is equal to another.<a name="line.402"></a><FONT color="green">403</FONT> *<a name="line.403"></a><FONT color="green">404</FONT> * @param o the other object (<code>null</code> permitted).<a name="line.404"></a><FONT color="green">405</FONT> *<a name="line.405"></a><FONT color="green">406</FONT> * @return A boolean.<a name="line.406"></a><FONT color="green">407</FONT> */<a name="line.407"></a><FONT color="green">408</FONT> public boolean equals(Object o) {<a name="line.408"></a><FONT color="green">409</FONT> <a name="line.409"></a><FONT color="green">410</FONT> if (o == null) {<a name="line.410"></a><FONT color="green">411</FONT> return false;<a name="line.411"></a><FONT color="green">412</FONT> }<a name="line.412"></a><FONT color="green">413</FONT> if (o == this) {<a name="line.413"></a><FONT color="green">414</FONT> return true;<a name="line.414"></a><FONT color="green">415</FONT> }<a name="line.415"></a><FONT color="green">416</FONT> <a name="line.416"></a><FONT color="green">417</FONT> if (!(o instanceof KeyedValues2D)) {<a name="line.417"></a><FONT color="green">418</FONT> return false;<a name="line.418"></a><FONT color="green">419</FONT> }<a name="line.419"></a><FONT color="green">420</FONT> KeyedValues2D kv2D = (KeyedValues2D) o;<a name="line.420"></a><FONT color="green">421</FONT> if (!getRowKeys().equals(kv2D.getRowKeys())) {<a name="line.421"></a><FONT color="green">422</FONT> return false;<a name="line.422"></a><FONT color="green">423</FONT> }<a name="line.423"></a><FONT color="green">424</FONT> if (!getColumnKeys().equals(kv2D.getColumnKeys())) {<a name="line.424"></a><FONT color="green">425</FONT> return false;<a name="line.425"></a><FONT color="green">426</FONT> }<a name="line.426"></a><FONT color="green">427</FONT> int rowCount = getRowCount();<a name="line.427"></a><FONT color="green">428</FONT> if (rowCount != kv2D.getRowCount()) {<a name="line.428"></a><FONT color="green">429</FONT> return false;<a name="line.429"></a><FONT color="green">430</FONT> }<a name="line.430"></a><FONT color="green">431</FONT> <a name="line.431"></a><FONT color="green">432</FONT> int colCount = getColumnCount();<a name="line.432"></a><FONT color="green">433</FONT> if (colCount != kv2D.getColumnCount()) {<a name="line.433"></a><FONT color="green">434</FONT> return false;<a name="line.434"></a><FONT color="green">435</FONT> }<a name="line.435"></a><FONT color="green">436</FONT> <a name="line.436"></a><FONT color="green">437</FONT> for (int r = 0; r < rowCount; r++) {<a name="line.437"></a><FONT color="green">438</FONT> for (int c = 0; c < colCount; c++) {<a name="line.438"></a><FONT color="green">439</FONT> Number v1 = getValue(r, c);<a name="line.439"></a><FONT color="green">440</FONT> Number v2 = kv2D.getValue(r, c);<a name="line.440"></a><FONT color="green">441</FONT> if (v1 == null) {<a name="line.441"></a><FONT color="green">442</FONT> if (v2 != null) {<a name="line.442"></a><FONT color="green">443</FONT> return false;<a name="line.443"></a><FONT color="green">444</FONT> }<a name="line.444"></a><FONT color="green">445</FONT> }<a name="line.445"></a><FONT color="green">446</FONT> else {<a name="line.446"></a><FONT color="green">447</FONT> if (!v1.equals(v2)) {<a name="line.447"></a><FONT color="green">448</FONT> return false;<a name="line.448"></a><FONT color="green">449</FONT> }<a name="line.449"></a><FONT color="green">450</FONT> }<a name="line.450"></a><FONT color="green">451</FONT> }<a name="line.451"></a><FONT color="green">452</FONT> }<a name="line.452"></a><FONT color="green">453</FONT> return true;<a name="line.453"></a><FONT color="green">454</FONT> }<a name="line.454"></a><FONT color="green">455</FONT> <a name="line.455"></a><FONT color="green">456</FONT> /**<a name="line.456"></a><FONT color="green">457</FONT> * Returns a hash code.<a name="line.457"></a><FONT color="green">458</FONT> * <a name="line.458"></a><FONT color="green">459</FONT> * @return A hash code.<a name="line.459"></a><FONT color="green">460</FONT> */<a name="line.460"></a><FONT color="green">461</FONT> public int hashCode() {<a name="line.461"></a><FONT color="green">462</FONT> int result;<a name="line.462"></a><FONT color="green">463</FONT> result = this.rowKeys.hashCode();<a name="line.463"></a><FONT color="green">464</FONT> result = 29 * result + this.columnKeys.hashCode();<a name="line.464"></a><FONT color="green">465</FONT> result = 29 * result + this.rows.hashCode();<a name="line.465"></a><FONT color="green">466</FONT> return result;<a name="line.466"></a><FONT color="green">467</FONT> }<a name="line.467"></a><FONT color="green">468</FONT> <a name="line.468"></a><FONT color="green">469</FONT> /**<a name="line.469"></a><FONT color="green">470</FONT> * Returns a clone.<a name="line.470"></a><FONT color="green">471</FONT> * <a name="line.471"></a><FONT color="green">472</FONT> * @return A clone.<a name="line.472"></a><FONT color="green">473</FONT> * <a name="line.473"></a><FONT color="green">474</FONT> * @throws CloneNotSupportedException this class will not throw this <a name="line.474"></a><FONT color="green">475</FONT> * exception, but subclasses (if any) might.<a name="line.475"></a><FONT color="green">476</FONT> */<a name="line.476"></a><FONT color="green">477</FONT> public Object clone() throws CloneNotSupportedException {<a name="line.477"></a><FONT color="green">478</FONT> DefaultKeyedValues2D clone = (DefaultKeyedValues2D) super.clone();<a name="line.478"></a><FONT color="green">479</FONT> // for the keys, a shallow copy should be fine because keys<a name="line.479"></a><FONT color="green">480</FONT> // should be immutable...<a name="line.480"></a><FONT color="green">481</FONT> clone.columnKeys = new java.util.ArrayList(this.columnKeys);<a name="line.481"></a><FONT color="green">482</FONT> clone.rowKeys = new java.util.ArrayList(this.rowKeys);<a name="line.482"></a><FONT color="green">483</FONT> <a name="line.483"></a><FONT color="green">484</FONT> // but the row data requires a deep copy<a name="line.484"></a><FONT color="green">485</FONT> clone.rows = (List) ObjectUtilities.deepClone(this.rows);<a name="line.485"></a><FONT color="green">486</FONT> return clone;<a name="line.486"></a><FONT color="green">487</FONT> }<a name="line.487"></a><FONT color="green">488</FONT> <a name="line.488"></a><FONT color="green">489</FONT> }<a name="line.489"></a></PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -