For only eight items? Completely a wasted effort, in all likelihood - but even pure java has Runnables and Executors. They'd be horribly verbose for such a simple operation, but it can easily be done.
On Thu, Jan 6, 2011 at 7:28 AM, Carl Jokl <[email protected]> wrote: > It still looks like it may not be possible yet in core Java without > using google collections or another external library. I suppose the > desire to be able to do this kind of things would be a driver for > wanting to add closure to Java. > > I get the principle that what I am really doing is mapping one value > to another value (Remembering Haskell from University) and that order > does not really matter. > > If it were an array of 8 values and a machine had 8 cores then > potentially the entire operation could be done together. The theory is > fair enough but I wonder about the overhead of breaking up something > like this over multiple threads and whether for more trivial > operations, the overhead of splitting up the computation and doing it > in parallel might outweigh the time savings of being able to do > parallel batches. I imagine there is some kind of threshold where the > parallel processing benefit is greater than the overhead. It may be a > lower threshold than I realise. > > On Jan 6, 12:14 pm, Ricky Clarkson <[email protected]> wrote: >> I think you're looking for map. >> >> import fj.F; >> import fj.data.Array; >> >> Integer[] legs = Array(animals).map(new F<Animal, Integer>() { >> public Integer f(Animal animal) { >> return animal.legs; >> } >> >> }).array(Integer.class); >> >> fj = Functional Java. >> >> >> >> On Thu, Jan 6, 2011 at 11:47 AM, Carl Jokl <[email protected]> wrote: >> > One item which I have heard mention recently is that the for loop >> > syntax is potentially harmful to teach because the for loop with an >> > index is inherently only processable with a single thread vs the >> > foreach loop which can potentially use parallel processing. >> >> > I use mostly foreach loops but there is one situation in Java where I >> > seem stuck with using the indexed version. This may be a shortcoming >> > in Java because the order in which iteration is done does not matter. >> >> > The situation is when doing operations which involve copying or >> > deriving values from one array to another array. The foreach loop in >> > Java is fine for taking values out of an array but I don't think as >> > far as I have been able to find out >> > that these loops can be used for receiving values. In this case the >> > for loop with the index is used to get an element out of an array at a >> > given index and the derived value is stored in the destination array >> > at the same index. >> >> > For example: >> >> > Type[] types = Type.values(); >> > char[] mnemonics = char[types.length]; >> > for (int index = 0; index < mnemonics.length; index++) { >> > mnemonics[index] = types[index].getMnemonic(); >> > } >> >> > I come across this situation a fair amount but don't think it can be >> > done in foreach style in Java though I think some kind of closure in >> > other languages would allow the source to be mapped to the destination >> > as I understand it. >> >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "The Java Posse" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group >> > athttp://groups.google.com/group/javaposse?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > > -- Joseph B. Ottinger http://enigmastation.com -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
