> Thanks for the tip David. The udf uses the same technique that I'm currently
> using.. i.e. loop over the list and use listFind to remove duplicates. The
> reason I'm looking for a simpler method is to reduce processing time for
> large lists. Encapsulating it in a udf is handy though ..
This got me thinking about how much I have always hated people's (including
myself) propensity for looping over lists to do any processing of them (see
Sean's comment about how lists suck), and being left with the thought
"there *must* be a better way".
So I had a wee looksee @ the Java API (I'm a Java newbie, so any excuse to
have a gander around is welcomed, in my view).
I came up with this lot:
l1 = "somelist";
l2 = createObject("java",
"java.util.HashSet").init(listToArray(l1)).toString();
HashSets don't allow duplicates, but will accept duplicates in the
initialisation data, so intrinsically dedupe the incoming list.
There's not much performance difference between the UDF (I'm testing with
the case-sensitive one) and the HashSet methods for short lists, but the
Java method comes into its own with longer lists.
I'm building a list of UUIDs, then concatenating it onto itself.
Interestingly... the lists are taking far longer to build than either
deduping process.
20 items:
UDF: 0ms
Java: 0ms
200 items:
UDF: 0-15ms
Java: 0ms
2000 items:
UDF: 250ms
Java: 0ms
20000 items:
UDF: 26000ms
Java: 80ms
Needless to say, using lists that long is simply not the best way to go
about things from the outset, but sometimes one's hand is forced with in
these matters.
And it's always good to know that there's more than one way to skin a cat
:-)
--
Adam
---
You are currently subscribed to cfaussie as: [email protected]
To unsubscribe send a blank email to [EMAIL PROTECTED]
Aussie Macromedia Developers: http://lists.daemon.com.au/