static int max(int a, int b) { ret Math.max(a, b); } static int max(int a, int b, int c) { ret max(max(a, b), c); } static long max(int a, long b) { ret Math.max((long) a, b); } static long max(long a, long b) { ret Math.max(a, b); } static double max(int a, double b) { ret Math.max((double) a, b); } static float max(float a, float b) { ret Math.max(a, b); } static double max(double a, double b) { ret Math.max(a, b); } static > A max (Iterable l) { A max = null; var it = iterator(l); if (it.hasNext()) { max = it.next(); while (it.hasNext()) { A a = it.next(); if (cmp(a, max) > 0) max = a; } } ret max; } /*Nah. static int max(Collection c) { int x = Integer.MIN_VALUE; for (int i : c) x = max(x, i); ret x; }*/ static double max(double[] c) { if (c.length == 0) ret Double.MIN_VALUE; double x = c[0]; for (int i = 1; i < c.length; i++) x = Math.max(x, c[i]); ret x; } static float max(float[] c) { if (c.length == 0) ret Float.MAX_VALUE; float x = c[0]; for (int i = 1; i < c.length; i++) x = Math.max(x, c[i]); ret x; } static byte max(byte[] c) { byte x = -128; for (byte d : c) if (d > x) x = d; ret x; } static short max(short[] c) { short x = -0x8000; for (short d : c) if (d > x) x = d; ret x; } static int max(int[] c) { int x = Int.MIN_VALUE; for (int d : c) if (d > x) x = d; ret x; } static > A max(A a, A b) { ret cmp(a, b) >= 0 ? a : b; }