Comments (10)
This idea needs a lot more thought.
Case 1: you can provide a comparator. In this case, you should provide it --
and just
create an ImmutableSortedSet. Creating that will cause a sort() to happen
which will
be a no-op, and that's not great but not terrible. It's possible we could
provide
another way to create an ISS where you declare your data is already increasing,
thus
the factory only has to check that each element is higher than the one before
it, and
doesn't have to call sort(). Meh.
Case 2: you can't provide a comparator. Some complicated database sort was
done, for
instance. So your comparator becomes an Ordering.givenOrder() over the elements
you
have. ImmutableSortedSet.inGivenOrder().addAll(list).build(). I kind of like
this,
but I haven't heard a loud demand for it. (then again, many people are not
loudly
demanding it but are still returning List from APIs that really should be Sets.)
Original comment by [email protected]
on 17 Mar 2009 at 5:09
- Changed title: Creating immutable sorted sets from already-ordered data
from google-collections.
There's a problem with Case 2. Without a comparator, you can't implement the
comparator(), headSet(), tailSet(), and subSet() methods.
Original comment by [email protected]
on 13 Aug 2009 at 2:06
from google-collections.
Could you elaborate on that a bit? E.g. why Ordering.givenOrder()/.explicit()
wouldn't
do?
Original comment by jim.andreou
on 13 Aug 2009 at 2:20
from google-collections.
Yeah, those methods would only be able to accept values that are elements in
the set,
so they'd be a bit crippled, but I'm not sure it's a deal-breaker.
This whole idea still lacks real motivation from users.
Original comment by [email protected]
on 13 Aug 2009 at 2:43
from google-collections.
Hmm, alright. Though it wouldn't be any more "crippled" than
Ordering.explicit()
itself. And you already decided that it doesn't pay off enough to allow
defining what
happens with elements not contained in the list (with something similar to
nullsFirst()/nullsLast()), with which I agree, so I don't see this as a big
issue - but
the real deal-breaker would be indeed lack of enough demand :)
Original comment by jim.andreou
on 13 Aug 2009 at 3:05
from google-collections.
ImmutableSortedSet should guarantee that its items are ordered using the
comparator()
order, so it's a good idea to accept the client assumption (that items are
already
ordered). But, I think, an acceptable case when the order is checked at the
construction phase - so ImmutableSortedSet.copyOfSorted(List<E> list) can check
the
given list to be correct, and accept it if correct or throw an exception if not.
Original comment by leonidos
on 3 Sep 2009 at 7:21
from google-collections.
[erratum]
In the previous message - I meant "it's not a good idea accept the client
assumption".
Original comment by leonidos
on 10 Sep 2009 at 1:36
from google-collections.
[deleted comment]
from google-collections.
Original comment by [email protected]
on 17 Sep 2009 at 6:02
- Added labels: Milestone-Post1.0
from google-collections.
This issue has been moved to the Guava project (keeping the same id number).
Simply replace 'google-collections' with 'guava-libraries' in your address
bar and it should take you there.
Original comment by [email protected]
on 5 Jan 2010 at 11:09
- Changed state: Moved
from google-collections.
Related Issues (20)
- Preconditions.checkArgumentNotNull HOT 2
- MapMaker with weak keys: keySet() doubles reference counts in map HOT 4
- broken checksums in maven artefacts for rc4 HOT 6
- Predicates.equalTo() should return a Predicate<Object> HOT 2
- Make com.google.common.collect.ImmutableCollection.Builder public HOT 3
- Easy way to deal with null Iterables when looping HOT 1
- Please provide Sets.symmetricDifference() HOT 3
- static method Functions.toStringFunction() should be parametrized HOT 5
- LinkedListMultimap values should be of type Deque<V> HOT 3
- add transformEntries method to Maps and SortedMaps HOT 4
- Be consistent with [Collection]s.new*[Collection](...) HOT 3
- CusomConcurrentHashMap.Values should override toArray(T[]) HOT 2
- with/withoutmethods on immutable collections HOT 2
- OutOfMemoryError when using MapMaker and Soft/Weak-Keys/Values HOT 1
- MemoryLeak(?) when using expiration in MapMaker HOT 2
- equals is not implemented for Collections2.filter HOT 1
- Allow asMap() to return a Map which has defined value Collections HOT 1
- GWT Module missing HOT 3
- Create an alternative to commons-collections MultiKey
- Patch for /trunk/testfw/com/google/common/collect/testing/MapInterfaceTest.java
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from google-collections.