fork download
  1. class Ideone {
  2. public static void main (String[] args) {
  3. Vector<Integer> a = new Vector<Integer>();
  4. a.adicionar(1);
  5. a.adicionar(2);
  6. a.adicionar(3);
  7. a.adicionar(4);
  8. a.adicionar(5);
  9. System.out.println(a.pegar(3));
  10. System.out.println(a.pegarPrimeiro());
  11. System.out.println(a.pegarUltimo());
  12. System.out.println(a.tamanho());
  13. System.out.println(a.vazio());
  14. System.out.println(a.procurar(3));
  15. System.out.println(a.removerElemento(3));
  16. System.out.println(a.remover(2));
  17. System.out.println(a.removerInicio());
  18. System.out.println(a.removerFim());
  19. System.out.println(a.pegar(0));
  20. System.out.println(a.tamanho());
  21. System.out.println(a.vazio());
  22. System.out.println(a.remover(2));
  23. System.out.println(a.removerInicio());
  24. System.out.println(a.removerFim());
  25. a.limpar();
  26. }
  27. }
  28.  
  29. class Vector<T> {
  30. T[] vetor;
  31. int qntElementos = 0;
  32. public Vector(int tam) {
  33. vetor = (T[]) new Comparable[tam];
  34. }
  35. public Vector() {
  36. this(4);
  37. }
  38. public void adicionar(T elemento) {
  39. if (tamanho() == vetor.length) {
  40. redimensionar();
  41. }
  42. vetor[tamanho()] = elemento;
  43. qntElementos++;
  44. }
  45. public T pegar(int posicao) {
  46. if (vazio() || posicao < 0 || posicao >= tamanho()) {
  47. throw new ArrayIndexOutOfBoundsException("Posição fora da faixa permitida");
  48. }
  49. return vetor[posicao];
  50. }
  51. public T pegarPrimeiro() {
  52. if (vazio()) {
  53. throw new ArrayIndexOutOfBoundsException("Posição fora da faixa permitida");
  54. }
  55. return vetor[0];
  56. }
  57. public T pegarUltimo() {
  58. if (vazio()) {
  59. throw new ArrayIndexOutOfBoundsException("Posição fora da faiza permitida");
  60. }
  61. return vetor[qntElementos - 1];
  62. }
  63. public int procurar(T elemento) {
  64. for (int i = 0; i < qntElementos; i++) {
  65. if (vetor[i].equals(elemento)) {
  66. return i;
  67. }
  68. }
  69. return -1;
  70. }
  71. public boolean removerElemento(T elemento) {
  72. return remover(procurar(elemento));
  73. }
  74. public boolean remover(int posicao) {
  75. if (!vazio() && posicao >= 0 && posicao < tamanho()) {
  76. for (int i = posicao; i < qntElementos; i++) {
  77. vetor[i] = vetor[i + 1];
  78. }
  79. vetor[tamanho()] = null;
  80. qntElementos--;
  81. return true;
  82. } else {
  83. return false;
  84. }
  85. }
  86. public boolean removerInicio() {
  87. if (vazio()) {
  88. return false;
  89. }
  90. for (int i = 0; i < qntElementos; i++) {
  91. vetor[i] = vetor[i + 1];
  92. }
  93. qntElementos--;
  94. return true;
  95. }
  96. public boolean removerFim() {
  97. if (vazio()) {
  98. return false;
  99. }
  100. vetor[tamanho()] = null;
  101. qntElementos--;
  102. return true;
  103. }
  104. public int tamanho() {
  105. return qntElementos;
  106. }
  107. public boolean vazio() {
  108. return tamanho() == 0;
  109. }
  110. public void limpar() {
  111. vetor = (T[]) new Comparable[4];
  112. }
  113. private void redimensionar() {
  114. T[] novoVetor = (T[]) new Object[vetor.length * 2];
  115. if (vetor.length == tamanho()){
  116. for (int i = 0; i < vetor.length; i++){
  117. novoVetor[i] = vetor[i];
  118. }
  119. vetor = novoVetor;
  120. }
  121. }
  122. }
Success #stdin #stdout 0.1s 320512KB
stdin
Standard input is empty
stdout
4
1
5
5
false
2
true
true
true
true
2
1
false
false
true
false