-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIntArrayList.java
More file actions
160 lines (123 loc) · 3.89 KB
/
IntArrayList.java
File metadata and controls
160 lines (123 loc) · 3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package com.arrlist;
import java.util.ArrayList;
import java.util.Arrays;
public class IntArrayList implements IntList {
int[] elements = new int[10];
int count = 0;
@Override
public void add(int value) {
int size;
if (count == elements.length )
{
size = ((elements.length * 3) / 2) + 1;
int[] AllElements = new int[size];
System.arraycopy(elements, 0, AllElements, 0, elements.length);
elements = new int[size];
elements = AllElements;
}
elements[count] = value;
count++;
}
@Override
public void add(int index, int element) {
if (index > count || index < 0){
System.out.println(" Error. Array index out of bounds exception");
} else {
int[] AllElements = new int[count];
System.arraycopy(elements, 0, AllElements, 0, count);
int[] newAllElements = new int[count + 1];
int j = 0;
for (int i = 0; i < newAllElements.length; i++){
if (i == index){
newAllElements[i] = element;
continue;
}
newAllElements[i] = AllElements[j];
j++;
}
elements = new int[count + 1];
elements = newAllElements;
count++;
}
}
@Override
public void clear() {
elements = new int[0];
count = 0;
}
@Override
public boolean contains(int value) {
int[] sortElements = new int[count];
System.arraycopy(elements, 0, sortElements, 0, count);
Arrays.sort(sortElements);
int first = 0;
int last = sortElements.length - 1;
int middle = ( first + last ) / 2;
while ( sortElements[middle] != value && first <= last){
if (value < sortElements[middle]) {
last --;
} else {
first ++;
}
middle = (first + last) / 2;
}
if (first <= last ){
return true;
} else {
return false;
}
}
@Override
public int get(int index) {
if (index >= count || index < 0 ){
System.out.println(" Error. Array index out of bounds exception");
return 0;
}
return elements[index];
}
@Override
public boolean isEmpty() {
if (count == 0) return true;
else return false;
}
@Override
public int remove(int index) {
if (index > count || index < 0){
System.out.println(" Error. Array index out of bounds exception");
return 0;
}
int[] AllElements = new int[count];
System.arraycopy(elements, 0, AllElements, 0, count);
System.out.println(Arrays.toString(AllElements));
int[] newAllElements = new int[count-1];
int j = 0;
for (int i = 0; i < AllElements.length; i++){
if (i == index){
continue;
}
newAllElements[j] = AllElements[i];
j++;
}
elements = new int[count-1];
elements = newAllElements;
count--;
return 0;
}
@Override
public void set(int index, int element) {
if (index > count || index < 0){
System.out.println(" Error. Array index out of bounds exception");
} else{
elements[index] = element;
}
}
@Override
public int size() {
return count;
}
public void IntArrToString() {
int[] allElements = new int[count];
System.arraycopy(elements, 0, allElements, 0, count);
System.out.println(Arrays.toString(allElements));
}
}