1   package eu.fbk.rdfpro.util;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import org.junit.Test;
7   
8   public class StringTest {
9   
10      @Test
11      public void test() {
12  
13          final List<String> list = new ArrayList<String>();
14          final List<char[]> list2 = new ArrayList<char[]>();
15          for (int i = 0; i < 1000; ++i) {
16              final String s = "this is " + Math.random() + " times a string with " + Math.random()
17                      + " characters";
18              list.add(s);
19              final int len = s.length();
20              final char[] cb = new char[len];
21              s.getChars(0, len, cb, 0);
22              list2.add(cb);
23          }
24  
25          final long ts0 = System.nanoTime();
26  
27          int sum = 0;
28          for (int j = 0; j < 100000; ++j) {
29              for (final char[] s : list2) {
30                  final int len = s.length;
31                  for (int i = 0; i < len; ++i) {
32                      sum += s[i] * j;
33                  }
34                  // for (int i = 0; i < len; ++i) {
35                  // sum += s.charAt(i) * j;
36                  // }
37              }
38          }
39  
40          final long ts1 = System.nanoTime();
41  
42          System.out.println(sum + " " + (ts1 - ts0) / 1000000);
43      }
44  }