On Fri, 24 Mar 2023 07:21:27 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>> Behavior is the same.
>> `Enumeration` doesn't have `remove` method. Only `hasMoreElements` and 
>> `nextElement`.
>> Method creates a new collection for result each time, hence no updates of 
>> underlying collection are possible.
>> Iteration order is the same too.
>> 
>>         Vector<String> v = new Vector<>();
>>         v.add("123");
>>         v.add("444");
>>         v.add("555");
>>         v.add("666");
>> 
>>         Enumeration<String> elements = v.elements();
>>         while (elements.hasMoreElements()) {
>>             String s = elements.nextElement();
>>             System.out.println(s);
>>         }
>>         System.out.println();
>> 
>>         ArrayList<String> a = new ArrayList<>(v);
>>         Enumeration<String> e = Collections.enumeration(a);
>>         while (e.hasMoreElements()) {
>>             String s = e.nextElement();
>>             System.out.println(s);
>>         }
>> 
>> gives
>> 
>> 123
>> 444
>> 555
>> 666
>> 
>> 123
>> 444
>> 555
>> 666
>
> but there is an asIterator method that may support remove

`Vector.elements()` and `Collections.enumeration(ArrayList)` returns 
`Enumeration` implementations that don't override `asIterator` method. Default 
implementation `java.util.Enumeration#asIterator` doesn't support remove too.
So, we are safe here.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/13149#discussion_r1147979096

Reply via email to