Comme il est difficile de se tourner vers, si vous écrivez fondamentalement toute la création de liste avec stream Pour mon aîné, "stream est en fait une déclaration for, donc c'est une perte de mémoire." J'ai eu une critique disant que j'étais un peu irrité, alors je l'ai vérifié.
Essayez d'utiliser une méthode simple de mesure de la mémoire
DecimalFormat f1 = new DecimalFormat("#,###KB");
DecimalFormat f2 = new DecimalFormat("##.#");
long free = Runtime.getRuntime().freeMemory() / 1024;
long total = Runtime.getRuntime().totalMemory() / 1024;
long max = Runtime.getRuntime().maxMemory() / 1024;
long used = total - free;
double ratio = (used * 100 / (double)total);
String info =
"Informations sur la mémoire Java:total=" + f1.format(total) + "、" +
"montant à utiliser=" + f1.format(used) + " (" + f2.format(ratio) + "%)、" +
"Maximum disponible="+f1.format(max);
System.out.println(info);
Informations sur la mémoire Java:total=125,952 Ko, utilisation=1,997KB (1.6%), Maximum disponible=1,864,192KB
List<Integer> list = new ArrayList<>();
List<Integer> devided1 = new ArrayList<>();
List<Integer> devided2 = new ArrayList<>();
List<Integer> devided3 = new ArrayList<>();
for(int i = 1; i<=10000 ; i++) {
list.add(i);
}
for(Integer num : list) {
if(num % 3 == 1) {
devided1.add(num);
}
if(num % 3 == 2) {
devided2.add(num);
}
if(num % 3 == 0) {
devided3.add(num);
}
}
Informations sur la mémoire Java:total=125,952 Ko, utilisation=2,665KB (2.1%), Maximum disponible=1,864,192KB
List<Integer> devided1 = list.stream()
.filter(i -> i%3 ==1)
.collect(Collectors.toList());
List<Integer> devided2 = list.stream()
.filter(i -> i%3 ==2)
.collect(Collectors.toList());
List<Integer> devided3 = list.stream()
.filter(i -> i%3 ==0)
.collect(Collectors.toList());
Informations sur la mémoire Java:total=125,952 Ko, utilisation=3,995KB (3.2%), Maximum disponible=1,864,192KB
Je suis désolé de dire les seniors effrontés. Après tout, si vous répétez le même processus trois fois, cela consommera plus de mémoire. Pour autant que ce nombre soit vu, il semble que la quantité d'utilisation de for soit plus petite même si le même traitement est effectué une fois.
J'ai des doutes sur le terme «réel pour la phrase» Après tout, il n'est pas toujours bon d'en utiliser un nouveau.
Cependant, je pense que ce dernier est toujours lisible et facile à écrire.
Recommended Posts