Advertisement
karenaaa

Untitled

Apr 5th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. package tarefa05;
  2.  
  3. public class Map {
  4.  
  5. public static class Pair {
  6. private Object key, value;
  7.  
  8. public Pair(Object key, Object value) {
  9. this.key = key;
  10. this.value = value;
  11. }
  12. }
  13.  
  14. private Pair[] pairs;
  15. private int nElements, newPosition;
  16. private boolean entered = false;
  17.  
  18. public Map(){
  19. pairs = new Pair[2];
  20. nElements = 0;
  21. }
  22.  
  23.  
  24. public void put(Object key, Object value) {
  25. for (int i = 0; i<nElements; i++) {
  26.  
  27. if (key == pairs[i].key) {
  28. pairs[i].value = value;
  29. entered = true;
  30. }
  31.  
  32. } if (!entered){
  33. newPosition = nElements;
  34.  
  35. if (newPosition+1 > pairs.length){
  36. doubleSize(pairs);
  37. }
  38.  
  39. pairs[newPosition]=new Pair(key, value);
  40. nElements++;
  41. }
  42. entered = false;
  43. }
  44.  
  45. public Object get(Object key) {
  46.  
  47. for (int i=0; i<pairs.length; i++) {
  48.  
  49. if (key == pairs[i].key) {
  50. return pairs[i].value;
  51. }
  52.  
  53. }
  54.  
  55. return null;
  56. }
  57.  
  58. public void remove(Object key) {
  59. Pair[] temp = new Pair[pairs.length];
  60. int count = 0;
  61.  
  62. for (int i = 0; i < pairs.length; i++) {
  63.  
  64. if (pairs[i].key != key){
  65. temp[i] = pairs[i];
  66. count++;
  67. }
  68. }
  69.  
  70. if (nElements > count)
  71. nElements--;
  72.  
  73. pairs = temp;
  74. }
  75.  
  76. public Object[] keys (){
  77. Object[] temp = new Object[nElements];
  78.  
  79. for (int i = 0; i < pairs.length; i++) {
  80. if (pairs[i]!=null){
  81. temp[i] = pairs[i].key;
  82. }
  83. }
  84. }
  85.  
  86. public void doubleSize(Pair[] p) {
  87. Pair[] temp = new Pair[p.length*2];
  88.  
  89. for (int i = 0; i < p.length; i++) {
  90. temp[i] = p[i];
  91. }
  92.  
  93. pairs = temp;
  94. }
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement