[ 
https://issues.apache.org/jira/browse/LUCENENET-292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780596#action_12780596
 ] 

Andrei Iliev commented on LUCENENET-292:
----------------------------------------

EquatableList<T> supposed to be replacement of Java ArrayList. In the current 
implementation it is not.  EquatableList<T>  should not override == 
(!=)operators.  In java,   operator == compares references but  not values. 
Example in java:
ArrayList list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        ArrayList list2 = (ArrayList)list.clone();
        System.out.println("Equals:"+list2.equals(list)); // will print true
        System.out.println("=="+(list2 == list));  // will print false



> Optimization of EquatableList<T>
> --------------------------------
>
>                 Key: LUCENENET-292
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-292
>             Project: Lucene.Net
>          Issue Type: Improvement
>            Reporter: Nicholas Paldino
>            Priority: Minor
>         Attachments: SupportClass.patch
>
>
> When comparing two IEnumerable<T> implementations, a shortcut can be taken to 
> check to see if both IEnumerable<T> expose operations which returns a count 
> of items (sequences cannot be equal if the number of elements in the 
> sequences are not equal).
> Typically, in .NET, this is expressed through the implementation of the 
> ICollection or ICollection<T> interface.
> Before enumerating through each element and comparing the two for equality, 
> if the counts are accessible, they should be compared to see if the number of 
> elements in the two sequences are equal.  If a comparison is able to be made 
> before enumerating, it will be much more performant for comparisons of 
> sequences where each is ~N, but both are not equal to N, and N is very large.
> Patch to follow.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to