Reusing objects is evil. Bad. Scary. Confusing. Before we do that, we should benchmark. I think that recent Java's are very good at hiding boxing and unboxing. This might mean that it never actually constructs the objects in question.
On 4/11/08 7:09 PM, "Samee Zahur (JIRA)" <[EMAIL PROTECTED]> wrote: > > [ > https://issues.apache.org/jira/browse/MAHOUT-34?page=com.atlassian.jira.plugin > .system.issuetabpanels:comment-tabpanel&focusedCommentId=12588185#action_12588 > 185 ] > > Samee Zahur commented on MAHOUT-34: > ----------------------------------- > > {quote} > I'm also thinking we should perhaps re-use the Element instance in > iterator.next? > {quote} > > Yes, this is specially true when we go through the codes of DenseVector. But > the case I came up was this: > > {code} > Element sum; > boolean first=true; > for(Element e : vec) { > if(first) { > sum=e; > first=false; > }else sum.set(e.get()+sum.get()); > } > {code} > > In the 'else' part above, if we reuse elements, both sum and e are actually > referring to the same object, and if vector size is more than 2, sum will > always just hold 2*lastelement rather than the intended value. These kind of > errors might be harder to detect in more complicated cases. > >> Iterator interface for Vectors >> ------------------------------ >> >> Key: MAHOUT-34 >> URL: https://issues.apache.org/jira/browse/MAHOUT-34 >> Project: Mahout >> Issue Type: New Feature >> Reporter: Samee Zahur >> Assignee: Karl Wettin >> Attachments: VectorIterator.3.patch.bz2, >> VectorIterator.patch.2.tar.bz2, VectorIterator.patch.tar.bz2 >> >> >> Implemented an Iterator interface for the Vector classes. Was necessary for >> porting from Float[] used in some parts of the code.
