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]