1ed90c38ab
Implement rest of the Arrays#fill family
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 15:11:19 -06:00
6a81623690
Implement the Arrays#copyOf family
...
... as introduced in Java 6.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 15:11:00 -06:00
46a55bd024
Implement ArrayList#ensureCapacity
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 14:33:25 -06:00
eab3b8e448
Implement Collections#reverse
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 14:33:25 -06:00
a61bcf824f
Implement Collections#binarySearch
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 14:33:25 -06:00
d37b5ada37
Implement Collections#sort
...
This is really a verbatim translation of Arrays#sort.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 12:08:22 -06:00
605701e40a
Replace Arrays.sort() with an efficient sort algorithm
...
This change reuses the existing insertion sort (which was previously what
Arrays.sort() executed) in a full intro sort pipeline.
The implementation is based on the Musser paper on intro sort (Musser,
David R. "Introspective sorting and selection algorithms." Softw., Pract.
Exper. 27.8 (1997): 983-993.) and Wikipedia's current description of the
heap sort: http://en.wikipedia.org/wiki/Heapsort .
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-11-04 00:27:04 -06:00
6c46fe3f1a
Make Vector a Cloneable
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-25 15:32:33 -05:00
056c65947e
Add Collections#singletonList
...
This is a very dumb implementation that wastes space and time by
constructing a full-blown ArrayList as backend. However, it is
better to have a dumb implementation than none at all, and we can
always do something about the performance when, and if, that should
become necessary.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-25 15:32:33 -05:00
86c735e649
Add Collections#synchronizedSet
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-25 15:32:33 -05:00
b20dcd268c
Merge pull request #85 from dscho/simple-regex
...
Simple regex
2013-10-21 13:30:57 -07:00
728473e9ad
Support escaped octal and hexadecimal characters in regular expressions
...
In the previous commit, we did not support characters in regular
expressions specified via \0..., \x... or \u... yet. This is a bit more
involved, therefore support for them is added in its own commit.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-21 13:34:33 -05:00
f55ac46602
Support trivial regular expressions with special escaped characters
...
When a regular expression contains escaped characters such as the
backslash, it is actually still a literal string. So let's support the
trivially-escaped characters, too, that are documented in
http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-21 12:00:17 -05:00
e485a468f0
Merge pull request #82 from dscho/dates
...
Implement date parsing / formatting
2013-10-21 09:36:46 -07:00
a9ecf1eaed
Complete the java.util.Arrays#toString family of methods
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-18 15:01:36 -05:00
dcfcd193be
Implement Calendar#getTime
...
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-18 14:58:44 -05:00
466a7fc0c0
Be more verbose when complaining about a non-trivial regex
...
In particular when constructing regular expressions before compiling them,
it is a good idea to state which exact expression is non-trivial when
complaining about it.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2013-10-18 14:56:05 -05:00
bfe7b9110a
Removed exception message based on Josh's recommendation
2013-07-17 11:52:48 -06:00
7da59277e5
This solves a class cast exception from a call to .values() from an UnmodifiableMap. It also solves an issue where you can modify an unmodifiable collection through the Iterator or ListIterator (depending on the structure type).
2013-07-15 08:54:44 -06:00
8eec1a0339
fixing problems!
2013-07-08 16:30:17 -06:00
54484bc2eb
add zipOutputStream and change DeflaterOutputStream
2013-07-08 14:13:08 -06:00
6970bb26ae
updating zipentry
2013-07-08 13:55:00 -06:00
055f820cac
adding zipentry and zipoutputstream classes
2013-07-05 14:39:30 -06:00
87b02eb949
update copyright years
...
Previously, I used a shell script to extract modification date ranges
from the Git history, but that was complicated and unreliable, so now
every file just gets the same year range in its copyright header. If
someone needs to know when a specific file was modified and by whom,
they can look at the Git history themselves; no need to include it
redundantly in the header.
2013-07-02 20:52:38 -06:00
bd2ebfce07
Merge branch 'master' of https://github.com/ReadyTalk/avian
2013-04-29 11:45:32 -06:00
a41f8c0103
Added more to the avian classpath for the collection interface as well as the list interface
...
Added to collection:
public boolean containsAll(Collection<?> c);
public boolean removeAll(Collection<?> c);
Added to list:
public boolean addAll(int startIndex, Collection<? extends T> c);
Also where possible for inner classes I made them extend the abstract version instead of just implement the interface. This helps reduce code duplication where possible.
These changes were necessary to support protobuf 2.5.0
2013-04-29 11:32:56 -06:00
b1eb4b9718
Adds code to get the Scala REPL working
2013-01-30 04:31:38 +01:00
852d77d0b5
implement Arrays.toString(byte[])
2012-08-04 16:08:32 -06:00
e85d079cfa
Merge branch 'master' of https://github.com/joshuawarner32/avian
2012-07-24 11:34:18 -06:00
fffde5f445
add Arrays test for equals and hashCode, handle corner cases with null
2012-07-24 11:31:47 -06:00
af34259a01
Merge branch 'master' of https://github.com/joshuawarner32/avian
2012-07-24 10:21:37 -06:00
b034d11221
Ungenerify Arrays.{hashCode|equals}, make Arrays.equals consider nulls equal
2012-07-24 10:03:19 -06:00
52a878fa3e
Merge branch 'master' of https://github.com/joshuawarner32/avian
2012-07-24 09:58:53 -06:00
b4ecec3034
Implementing add(T element) in AbstractList, which just calls add(size(), element) and returns true per the spec.
2012-07-23 18:55:11 -06:00
62ff8440ed
implement Arrays.equals and Arrays.hashCode
2012-07-23 07:28:05 -06:00
59280c5780
Fixed isEmpty() on TreeSet, which actually returned !isEmpty().
2012-07-13 15:46:01 -06:00
2ab304acb8
Merge github.com:mkeesey/avian
2012-07-07 16:29:18 -06:00
ba1719f1ef
EnumSet.allOf can take advantage of the bulk BitSet.set(start, end) operation to run faster instead of adding each element individually.
2012-07-06 23:47:42 -06:00
39ad6da290
made getTrueMask in BitSet a lot more rational with fewer code paths.
2012-07-06 23:42:54 -06:00
7947981b4b
Fixed issue where BitSet didn't handle a range of 64 bits correctly on bulk operations - now just return the predefined MASK which has all the bits set when requesting that all the bits be set.
2012-07-06 23:33:05 -06:00
26209efac2
Fix an off-by-1 error in the remove method.
...
The change to only grow the array when the capacity has been reached
exposed a bug in the remove method when shifting the array elements.
2012-07-06 14:03:56 -06:00
9c9ee5c26d
Made the bulk clear() fast like bulk set() and flip() for BitSet.
2012-07-05 22:16:19 -06:00
990f4fd154
Moved looping through the partitions to change and generating a mask for start and end values into an iterator. This is to use one code path for several bulk-modification operations like flip(start, end) and set(start, end).
2012-07-04 17:12:50 -06:00
0c806f82b5
Made the bulk set() function in BitSet a lot faster by applying an appropriate mask to each partition instead of setting each bit individually.
2012-07-04 16:00:12 -06:00
5f1b086150
Fixed an off-by-one error when deciding if we should grow BitSets.
2012-07-03 21:28:59 -06:00
53f229b84d
Removed extraneous TODO.
2012-07-02 16:21:28 -06:00
fcef9a7f57
remove Override annotations from EnumSet since they confuse Apple's Java 1.5 compiler
2012-07-02 16:15:38 -06:00
6e30366d07
Adding EnumSet, which is backed by a speedy BitSet.
2012-07-02 14:28:51 -06:00
d419899ac1
Adding both forms of flip() to BitSet.
2012-07-02 14:28:40 -06:00
31311160c3
Adding cardinality() to BitSet.
2012-07-02 14:28:34 -06:00