Mercurial > projects > dwt2
annotate java/src/java/util/Arrays.d @ 10:eb8ff453285d
Added java.util collection classes.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 13 Mar 2009 16:57:07 +0100 |
parents | |
children | 9b96950f2c3c |
rev | line source |
---|---|
10
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 module java.util.Arrays; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 import java.lang.all; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
4 import java.util.List; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 import java.util.ArrayList; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 import java.util.Collections; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 class Arrays { |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 public static bool equals(T)(T[] a, T[] b){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 if( a.length !is b.length ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
11 return false; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 for( int i = 0; i < a.length; i++ ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 if( a[i] is null && b[i] is null ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 continue; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 if( a[i] !is null && b[i] !is null && a[i] == b[i] ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 continue; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 return false; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 return true; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 /+ public static bool equals(Object[] a, Object[] b){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 if( a.length !is b.length ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 return false; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 for( int i = 0; i < a.length; i++ ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 if( a[i] is null && b[i] is null ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 continue; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 if( a[i] !is null && b[i] !is null && a[i] == b[i] ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 continue; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 return false; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 return true; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 +/ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 static void sort( T )( T[] a, Comparator c ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 static if( is( T : char[] )){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 bool isLess( String o1, String o2 ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 return c.compare( stringcast(o1), stringcast(o2) ) < 0; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
44 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
45 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
46 else{ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
47 bool isLess( T o1, T o2 ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
48 return c.compare( cast(Object)o1, cast(Object)o2 ) < 0; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
49 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
50 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
51 tango.core.Array.sort( a, &isLess ); |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
52 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
53 static List asList(Object[] a) { |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
54 if( a.length is 0 ) return Collections.EMPTY_LIST; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
55 ArrayList res = new ArrayList( a.length ); |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
56 foreach( o; a ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
57 res.add(o); |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
58 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
59 return res; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
60 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
61 public static void fill( String str, char c ){ |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 str[] = c; |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
63 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
64 } |
eb8ff453285d
Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
65 |