Author: fanningpj
Date: Sat Feb  3 21:06:38 2024
New Revision: 1915572

URL: http://svn.apache.org/viewvc?rev=1915572&view=rev
Log:
[github-582] improve performance CodepointsUtil.iteratorFor. Thanks to Jason 
Mirra. This closes #582

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java

Modified: poi/trunk/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java?rev=1915572&r1=1915571&r2=1915572&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java Sat Feb 
 3 21:06:38 2024
@@ -29,9 +29,18 @@ public class CodepointsUtil {
      * @see #primitiveIterator(String) a more performant iterator
      */
     public static Iterator<String> iteratorFor(String text) {
-        return text.codePoints()
-                .mapToObj(codePoint -> new 
String(Character.toChars(codePoint)))
-                .iterator();
+        final PrimitiveIterator.OfInt iter = primitiveIterator(text);
+        return new Iterator<String>() {
+            @Override
+            public boolean hasNext() {
+                return iter.hasNext();
+            }
+
+            @Override
+            public String next() {
+                return new String(Character.toChars(iter.nextInt()));
+            }
+        };
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to