Skip to content

Commit

Permalink
12/06 StringBuilder vs concatenacoes
Browse files Browse the repository at this point in the history
  • Loading branch information
vigusmao committed Jun 12, 2019
1 parent 247734c commit 8bc1ead
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 20 deletions.
10 changes: 10 additions & 0 deletions SomaDoPar/SomaDoPar.iml
Expand Up @@ -7,5 +7,15 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module-library">
<library name="JUnit4">
<CLASSES>
<root url="jar://$APPLICATION_HOME_DIR$/lib/junit-4.12.jar!/" />
<root url="jar://$APPLICATION_HOME_DIR$/lib/hamcrest-core-1.3.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
</component>
</module>
35 changes: 15 additions & 20 deletions SomaDoPar/src/SomaDoPar.java
Expand Up @@ -28,43 +28,38 @@ public static String encontrarPar(List<Integer> lista, int s) {
return "Não existe";
}

public static String formatarLista(
List<Integer> lista, String separador) {

// JEITO TERRÍVEL DE SE FAZER!!!!
public static String listaToString(List<Integer> lista, String separador) {
// JEITO TERRÍVEL DE SE FAZER!!
// String resultado = "";
// for (int i = 0; i < lista.size() - 1; i++) {
// resultado += lista.get(i);
// resultado += separador;
// for (int i = 0; i <= lista.size() - 2; i++) {
// resultado += lista.get(i) + separador;
// }
// resultado += lista.get(lista.size() - 1);
// return resultado;

// JEITO CORRETO, usando um StringBuilder
// JEITO RECOMENDÁVEL
StringBuilder sb = new StringBuilder();
for (int i = 0; i < lista.size() - 1; i++) {
sb.append(lista.get(i))
.append(separador);
for (int i = 0; i <= lista.size() - 2; i++) {
sb.append(lista.get(i)).append(separador);
}
sb.append(lista.get(lista.size() - 1));
return sb.toString();
}

public static void imprimirLista(
List<Integer> lista, String separador) {
System.out.println(formatarLista(lista, separador));
public static void imprimirLista(List<Integer> lista, String separador) {
System.out.println(listaToString(lista, separador));
}

public static void main(String[] args) {
final int TAMANHO = 100_000;
List<Integer> lista = new ArrayList<>(TAMANHO);
final int TAMANHO = 200_000;
List<Integer> minhaLista = new ArrayList<>(TAMANHO);
for (int i = 1; i <= TAMANHO; i++) {
lista.add(i);
minhaLista.add(i);
}
// imprimirLista(minhaLista, "|...|");
long inicio = System.currentTimeMillis();
formatarLista(lista, "|");
String resultado = listaToString(minhaLista, "..");
long duracao = System.currentTimeMillis() - inicio;
System.out.printf("\nTamanho = %d --- Duração = %d millis\n",
TAMANHO, duracao);
System.out.println(duracao);
}
}

0 comments on commit 8bc1ead

Please sign in to comment.