<div dir="auto">It's a bit of indirection, but can for (YourEnum e : EnumSet.allOf(YourEnum.class)) {} do the trick? It will still allocate, but likely only one instance instead of a full array. </div><br><div class="gmail_quote"><div dir="ltr">On Wed, Jul 25, 2018, 5:23 AM Michael Rasmussen <<a href="mailto:Michael.Rasmussen@roguewave.com">Michael.Rasmussen@roguewave.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div id="m_1124692167999590896divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p style="margin-top:0;margin-bottom:0">With condy being added in Java 11, this could potentially be a use-case for that ?</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"><span style="font-size:12pt">for (EnumType
</span><span style="font-size:12pt">e</span><span style="font-size:12pt">: const(</span><span style="font-size:12pt">EnumType.values())) { ... </span><span style="font-size:12pt">}</span><br>
</p>
<p style="margin-top:0;margin-bottom:0"><span style="font-size:12pt"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-size:12pt">Or perhaps it's time to add a List<E> valuesList(); to enum types, that returns an immutable List of the values?</span></p>
<p style="margin-top:0;margin-bottom:0"><span style="font-size:12pt"><br>
</span></p>
<p style="margin-top:0;margin-bottom:0">/Michael</p>
</div>
<hr style="display:inline-block;width:98%">
<div id="m_1124692167999590896divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> compiler-dev <<a href="mailto:compiler-dev-bounces@openjdk.java.net" target="_blank" rel="noreferrer">compiler-dev-bounces@openjdk.java.net</a>> on behalf of nezih yigitbasi <<a href="mailto:nezihyigitbasi@gmail.com" target="_blank" rel="noreferrer">nezihyigitbasi@gmail.com</a>><br>
<b>Sent:</b> 25 July 2018 08:23:57<br>
<b>To:</b> <a href="mailto:compiler-dev@openjdk.java.net" target="_blank" rel="noreferrer">compiler-dev@openjdk.java.net</a><br>
<b>Subject:</b> about Enum.values() memory allocation</font>
<div> </div>
</div>

<div>
<div dir="ltr"><span style="font-size:small;float:none;display:inline">Hi,</span><br style="font-size:small">
<span style="font-size:small;float:none;display:inline">I recently noticed in our app that Enum.values() allocates a significant amount of memory when called in a tight loop as it clones the constant values array (which is probably for immutability, and I
 can understand that). I found that the same issue has been discussed back in 2012: </span><a href="http://mail.openjdk.java.net/pipermail/compiler-dev/2012-March/004210.html" style="color:rgb(17,85,204);font-size:small" target="_blank" rel="noreferrer">http://mail.openjdk.java.net/pipermail/compiler-dev/2012-March/004210.html</a>
<div style="font-size:small"><br>
</div>
<div style="font-size:small">Are there any plans to address this issue going forward?<br>
<br>
Thanks!</div>
<br>
</div>
</div>
</div>

</blockquote></div>