package toolkit; public class Main { public static void main(String[] args) { // POLIMORFISMO! // POLIMORFISMO AD HOC: // Sobrecarga de métodos IList lista = new List(); System.out.println(lista.count() == 0); System.out.println(lista.empty() == true); System.out.println(lista.get(0) == null); System.out.println(lista.first() == null); System.out.println(lista.last() == null); lista.append("a"); System.out.println(lista.empty() == false); System.out.println(lista.count() == 1); System.out.println(lista.get(0).equals("a")); System.out.println(lista.first().equals("a")); System.out.println(lista.last().equals("a")); System.out.println(lista.first().equals(lista.last())); lista.append(2); // a lista deve aceitar qualquer Objeto lista.append("c"); lista.append("d"); lista.append("e"); System.out.println(lista.count() == 5); System.out.println(lista.first().equals("a")); System.out.println(lista.last().equals("e")); System.out.println(lista.get(1).equals(2)); System.out.println(lista.get(2).equals("c")); System.out.println(lista.get(5) == null); System.out.println(lista.has("a") == true); System.out.println(lista.has(3) == false); System.out.println(lista.has("f") == false); System.out.println(lista.has(2) == true); System.out.println(lista.count() == 5); lista.append(null); System.out.println(lista.count() == 5); System.out.println(lista.delete(1) == true); System.out.println(lista.delete(9) == false); System.out.println(lista.count() == 4); System.out.println(lista.get(0).equals("a")); System.out.println(lista.get(1).equals("c")); System.out.println(lista.get(2).equals("d")); System.out.println(lista.get(3).equals("e")); System.out.println(lista.drop(2).equals("d")); System.out.println(lista.count() == 3); System.out.println(lista.remove("c") == true); System.out.println(lista.count() == 2); System.out.println(lista.get(0).equals("a")); System.out.println(lista.get(1).equals("e")); System.out.println(lista.drop(2) == null); System.out.println(lista.remove("c") == false); lista.clean(); System.out.println(lista.count() == 0); System.out.println(lista.empty() == true); System.out.println(lista.get(0) == null); System.out.println(lista.first() == null); System.out.println(lista.last() == null); lista = new List(); long startMillis = System.currentTimeMillis(); for (int i = 0; i < 1000000000; i++) lista.append("teste"); long endMillis = System.currentTimeMillis(); System.out.println(lista.count() == 1000000000); // benchmark: anotar o desempenho e tentar melhor�-lo (qto menos tempo melhor) System.out.println((endMillis - startMillis) + "ms decorridos para adicionar 1G elementos"); } }