Commit Graph

285 Commits

Author SHA1 Message Date
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
153b78f479 fix ArrayList performance issue
The ArrayList(Collection) constructor was allocating two arrays
instead of one due to an off-by-one error in ArrayList.grow.  This
commit fixes that and makes grow and shrink more robust.
2012-06-14 10:55:03 -06:00
527526c5ea Defer to underlying PersistentSet for size. 2012-06-13 08:41:15 -06:00
1f7b1a74e8 Adding java.util.SortedSet. 2012-05-22 16:21:57 -06:00
97ffc5b15e Adding java.util.Queue interface and java.util.AbstractQueue. 2012-05-22 15:23:28 -06:00
0addd8c814 update copyright years 2012-05-11 17:43:27 -06:00
1119675b7a override InputStream.available for FileInputStream and the instance returned by ZipFile.getInputStream 2012-05-04 19:55:53 -06:00
8e6f5ac6e3 add ZipEntry.isDirectory (trivial implementation) 2012-03-21 10:38:30 -06:00
9fe2d69b06 improve seed generation in java.util.Random
The previous code caused frequent seed collisions for successive calls
to the no-arg constructor, even for single threaded workloads.  This
patch should avoid such collisions in both single and multi-threaded
cases.
2012-02-14 15:17:07 -07:00