// ---------
// Fill.java
// ---------
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.ListIterator;
final class Fill {
/**
* O(1) in space
* O(n) in time
*/
public static void eval (long[] a, int b, int e, long v) {
assert b <= e;
while (b != e) {
a[b] = v;
++b;}}
/**
* O(1) in space
* O(n) in time
*/
public static void eval (Object[] a, int b, int e, Object v) {
assert b <= e;
while (b != e) {
a[b] = v;
++b;}}
/**
* O(1) in space
* O(n) in time
*/
public static <T> void eval (List<? super T> x, T v) {
final ListIterator<? super T> p = x.listIterator();
while (p.hasNext()) {
p.next();
p.set(v);}}}
final class FillTest {
public static void main (String[] args) {
System.out.println("Fill.java");
{
final long[] a = {2, 3, 4};
Arrays.fill(a, 0, a.length, 5);
assert Arrays.equals(a, new long[]{5, 5, 5});
}
{
final long[] a = {2, 3, 4};
Fill.eval(a, 0, a.length, 5);
assert Arrays.equals(a, new long[]{5, 5, 5});
}
{
final String[] a = {"abc", "def", "ghi"};
Arrays.fill(a, 0, a.length, "jkl");
assert Arrays.equals(a, new String[]{"jkl", "jkl", "jkl"});
}
{
final String[] a = {"abc", "def", "ghi"};
Fill.eval(a, 0, a.length, "jkl");
assert Arrays.equals(a, new String[]{"jkl", "jkl", "jkl"});
}
{
final List<String> x = Arrays.asList("abc", "def", "ghi");
Collections.fill(x, "jkl");
assert x.toString().equals("[jkl, jkl, jkl]");
}
{
final List<String> x = Arrays.asList("abc", "def", "ghi");
Fill.eval(x, "jkl");
assert x.toString().equals("[jkl, jkl, jkl]");
}
System.out.println("Done.");}}
syntax highlighted by Code2HTML, v. 0.9.1