Das ist oben kein normales Minuszeichen....
Profis hätten das wohl so gemacht:
[code=Java] public static void main(String[] args) {
int td = 0;
for (Iterator<Integer> iterator = new SubIntIter(new int[]{, }).iterator(); iterator.hasNext();) {
Integer x = iterator.next();
Integer y = iterator.next();
int d = d(x, y);
if (d > td) {
td = d;
}
}
System.out.println("td = " + td);
System.out.println();
td = 0;
for (Iterator<Integer> iterator = new SubIntIter(new int[]{1,}).iterator(); iterator.hasNext();) {
Integer x = iterator.next();
Integer y = iterator.next();
int d = d(x, y);
if (d > td) {
td = d;
}
}
System.out.println("td = " + td);
System.out.println();
td = 0;
for (Iterator<Integer> iterator = new SubIntIter(new int[]{2, 3,}).iterator(); iterator.hasNext();) {
Integer x = iterator.next();
Integer y = iterator.next();
int d = d(x, y);
if (d > td) {
td = d;
}
}
System.out.println("td = " + td);
System.out.println();
//////
td = 0;
for (Iterator<Integer> iterator = new SubIntIter(new int[]{1, 2, 3, 4, 5,}).iterator(); iterator.hasNext();) {
Integer x = iterator.next();
Integer y = iterator.next();
int d = d(x, y);
if (d > td) {
td = d;
}
}
System.out.println("td = " + td);
System.out.println();
td = 0;
for (Iterator<Integer> iterator = new SubIntIter(new int[]{6, 9, 13, 2, -5, 0,}).iterator(); iterator.hasNext();) {
Integer x = iterator.next();
Integer y = iterator.next();
int d = d(x, y);
if (d > td) {
td = d;
}
}
System.out.println("td = " + td);
System.out.println();
td = 0;
for (Iterator<Integer> iterator = new SubIntIter(new int[]{1, 1, 1,}).iterator(); iterator.hasNext();) {
Integer x = iterator.next();
Integer y = iterator.next();
int d = d(x, y);
if (d > td) {
td = d;
}
}
System.out.println("td = " + td);
System.out.println();
}
static int d(int ax, int ay) {
int size = Math.abs(ax - ay);
return size;
}
}
class SubIntIter implements Iterable<Integer> {
int[] array;
SubIntIter(int[] array) {
this.array = array;
}
@Override
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
int c = 0;
int d = 0;
@Override
public boolean hasNext() {
return c < ((array.length << 1) - 2);
}
@Override
public Integer next() {
return array[(c++ / 2) + (d++ % 2)];
}
};
}
}[/code]
[code]td = 0
td = 0
td = 1
td = 1
td = 11
td = 0
[/code]
(An einigen Stellen noch verkomplizierter, aber besser lesbar aufgemalt
)