Add set to IntList

Some applications may wish to modify an int list.

Bug: 291083
Eclipse-CQ: 3559
Change-Id: Iea871443ec661230aec92397229f1eda6c74216f
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Johannes Schindelin 2009-09-03 12:46:31 +02:00 committed by Shawn O. Pearce
parent 6e1571d5b9
commit 9c056fcace
2 changed files with 39 additions and 0 deletions

View File

@ -150,6 +150,27 @@ public void testClear() {
}
}
public void testSet() {
final IntList i = new IntList();
i.add(1);
assertEquals(1, i.size());
assertEquals(1, i.get(0));
i.set(0, 5);
assertEquals(5, i.get(0));
try {
i.set(5, 5);
fail("accepted set of 5 beyond end of list");
} catch (ArrayIndexOutOfBoundsException e){
assertTrue(true);
}
i.set(1, 2);
assertEquals(2, i.size());
assertEquals(2, i.get(1));
}
public void testToString() {
final IntList i = new IntList();
i.add(1);

View File

@ -1,5 +1,6 @@
/*
* Copyright (C) 2008, Google Inc.
* Copyright (C) 2009, Johannes Schindelin <johannes.schindelin@gmx.de>
* and other copyright owners as documented in the project's IP log.
*
* This program and the accompanying materials are made available
@ -99,6 +100,23 @@ public void add(final int n) {
entries[count++] = n;
}
/**
* Assign an entry in the list.
*
* @param index
* index to set, must be in the range [0, {@link #size()}).
* @param n
* value to store at the position.
*/
public void set(final int index, final int n) {
if (count < index)
throw new ArrayIndexOutOfBoundsException(index);
else if (count == index)
add(n);
else
entries[index] = n;
}
/**
* Pad the list with entries.
*