📄 shortlist.java
字号:
if (other._limit == _limit) { // assume match rval = true; for (int j = 0; rval && (j < _limit); j++) { rval = _array[ j ] == other._array[ j ]; } } } return rval; } /** * Returns the element at the specified position in this list. * * @param index index of element to return. * * @return the element at the specified position in this list. * * @exception IndexOutOfBoundsException if the index is out of * range (index < 0 || index >= size()). */ public short get(final int index) { if (index >= _limit) { throw new IndexOutOfBoundsException(); } return _array[ index ]; } /** * Returns the hash code value for this list. The hash code of a * list is defined to be the result of the following calculation: * * <code> * hashCode = 1; * Iterator i = list.iterator(); * while (i.hasNext()) { * Object obj = i.next(); * hashCode = 31*hashCode + (obj==null ? 0 : obj.hashCode()); * } * </code> * * This ensures that list1.equals(list2) implies that * list1.hashCode()==list2.hashCode() for any two lists, list1 and * list2, as required by the general contract of Object.hashCode. * * @return the hash code value for this list. */ public int hashCode() { int hash = 0; for (int j = 0; j < _limit; j++) { hash = (31 * hash) + _array[ j ]; } return hash; } /** * Returns the index in this list of the first occurrence of the * specified element, or -1 if this list does not contain this * element. More formally, returns the lowest index i such that * (o == get(i)), or -1 if there is no such index. * * @param o element to search for. * * @return the index in this list of the first occurrence of the * specified element, or -1 if this list does not contain * this element. */ public int indexOf(final short o) { int rval = 0; for (; rval < _limit; rval++) { if (o == _array[ rval ]) { break; } } if (rval == _limit) { rval = -1; // didn't find it } return rval; } /** * Returns true if this list contains no elements. * * @return true if this list contains no elements. */ public boolean isEmpty() { return _limit == 0; } /** * Returns the index in this list of the last occurrence of the * specified element, or -1 if this list does not contain this * element. More formally, returns the highest index i such that * (o == get(i)), or -1 if there is no such index. * * @param o element to search for. * * @return the index in this list of the last occurrence of the * specified element, or -1 if this list does not contain * this element. */ public int lastIndexOf(final short o) { int rval = _limit - 1; for (; rval >= 0; rval--) { if (o == _array[ rval ]) { break; } } return rval; } /** * Removes the element at the specified position in this list. * Shifts any subsequent elements to the left (subtracts one from * their indices). Returns the element that was removed from the * list. * * @param index the index of the element to removed. * * @return the element previously at the specified position. * * @exception IndexOutOfBoundsException if the index is out of * range (index < 0 || index >= size()). */ public short remove(final int index) { if (index >= _limit) { throw new IndexOutOfBoundsException(); } short rval = _array[ index ]; System.arraycopy(_array, index + 1, _array, index, _limit - index); _limit--; return rval; } /** * Removes the first occurrence in this list of the specified * element (optional operation). If this list does not contain * the element, it is unchanged. More formally, removes the * element with the lowest index i such that (o.equals(get(i))) * (if such an element exists). * * @param o element to be removed from this list, if present. * * @return true if this list contained the specified element. */ public boolean removeValue(final short o) { boolean rval = false; for (int j = 0; !rval && (j < _limit); j++) { if (o == _array[ j ]) { System.arraycopy(_array, j + 1, _array, j, _limit - j); _limit--; rval = true; } } return rval; } /** * Removes from this list all the elements that are contained in * the specified collection * * @param c collection that defines which elements will be removed * from this list. * * @return true if this list changed as a result of the call. */ public boolean removeAll(final ShortList c) { boolean rval = false; for (int j = 0; j < c._limit; j++) { if (removeValue(c._array[ j ])) { rval = true; } } return rval; } /** * Retains only the elements in this list that are contained in * the specified collection. In other words, removes from this * list all the elements that are not contained in the specified * collection. * * @param c collection that defines which elements this set will * retain. * * @return true if this list changed as a result of the call. */ public boolean retainAll(final ShortList c) { boolean rval = false; for (int j = 0; j < _limit; ) { if (!c.contains(_array[ j ])) { remove(j); rval = true; } else { j++; } } return rval; } /** * Replaces the element at the specified position in this list * with the specified element * * @param index index of element to replace. * @param element element to be stored at the specified position. * * @return the element previously at the specified position. * * @exception IndexOutOfBoundsException if the index is out of * range (index < 0 || index >= size()). */ public short set(final int index, final short element) { if (index >= _limit) { throw new IndexOutOfBoundsException(); } short rval = _array[ index ]; _array[ index ] = element; return rval; } /** * Returns the number of elements in this list. If this list * contains more than Integer.MAX_VALUE elements, returns * Integer.MAX_VALUE. * * @return the number of elements in this ShortList */ public int size() { return _limit; } /** * Returns an array containing all of the elements in this list in * proper sequence. Obeys the general contract of the * Collection.toArray method. * * @return an array containing all of the elements in this list in * proper sequence. */ public short [] toArray() { short[] rval = new short[ _limit ]; System.arraycopy(_array, 0, rval, 0, _limit); return rval; } /** * Returns an array containing all of the elements in this list in * proper sequence. Obeys the general contract of the * Collection.toArray(Object[]) method. * * @param a the array into which the elements of this list are to * be stored, if it is big enough; otherwise, a new array * is allocated for this purpose. * * @return an array containing the elements of this list. */ public short [] toArray(final short [] a) { short[] rval; if (a.length == _limit) { System.arraycopy(_array, 0, a, 0, _limit); rval = a; } else { rval = toArray(); } return rval; } private void growArray(final int new_size) { int size = (new_size == _array.length) ? new_size + 1 : new_size; short[] new_array = new short[ size ]; System.arraycopy(_array, 0, new_array, 0, _limit); _array = new_array; }} // end public class ShortList
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -