29/09/2022
Custom Collection Development
Developing Our Own ArrayList
==========================
public class NITCollection {
private Object[] elementData;
private int elementCount;
public NITCollection() {
elementData = new Object[10];
}
public void add(Object obj) {
if(size() == capacity()) {
grow();
}
elementData[elementCount] = obj;
elementCount++;
}
private void grow() {
Object[] nextArray = new Object[capacity() * 2];
for(int i=0; i=0;
}
public int indexOf(Object obj) {
if(obj == null) {
for(int i=0; i=0; i--) {
if(obj.equals(elementData[i])) {
return i;
}
}
return -1;
}
}
public Object get(int index) {
checkIndex(index);
return elementData[index];
}
private void checkIndex(int index) {
if(index =elementCount)
throw new IndexOutOfBoundsException(index);
}
public Object remove(int index) {
checkIndex(index);
Object ele = elementData[index];
for(; index=index; i--) { //moving elements
elementData[i+1] = elementData[i]; //size to up to passed index
}
elementData[index] = obj; //inserting argument object in the given location
elementCount++; //increasing size
}
public Object set(int index, Object obj) {
checkIndex(index);
Object ele = elementData[index];
elementData[index] = obj;
return ele;
}
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[");
for(int i=0; i String -> overridden -> content
System.out.println(col.contains(5)); //5.equals(ele) in loop -> Integer -> overridden -> content
System.out.println(col.contains(true));//true.equals(ele)->Boolean-> Overridden-> content
System.out.println(col.contains(null));//null.equals(ele)->NPE
System.out.println(col.contains(new Sa(5,6))); //false ->Sa(5,6).equals(ele)->!Overridden->ref
System.out.println(col.contains(s3)); //true ->s3.equals(ele)->!Overridden->ref
System.out.println();
System.out.println(col.indexOf("a"));
System.out.println(col.indexOf("A"));
System.out.println(col.indexOf(5));
System.out.println(col.indexOf(true));
System.out.println(col.indexOf(null));
System.out.println(col.indexOf(new Sa(5,6)));
System.out.println(col.indexOf(s3));
System.out.println();
System.out.println(col.lastIndexOf("a"));
System.out.println(col.lastIndexOf("A"));
System.out.println(col.lastIndexOf(new Sa(5,6)));
System.out.println(col.lastIndexOf(s3));
System.out.println();
System.out.println(col);
System.out.println(col.get(0));
System.out.println(col.get(5));
System.out.println(col.get(10));
System.out.println(col.get(12));
Object obj = col.get(9);
System.out.println(obj);
Sa sa = (Sa)obj;
System.out.println(sa.getX());
System.out.println(sa.getY());
sa.setX(23);
sa.setY(24);
System.out.println(sa.getX());
System.out.println(sa.getY());
System.out.println(obj);
System.out.println(col);
obj = col.get(0);
String str = (String)obj;
str.toUpperCase();
System.out.println(col);
System.out.println();
System.out.println(col.capacity());
System.out.println(col.size());
//System.out.println(col.get(-1));
//System.out.println(col.get(15));
System.out.println();
System.out.println(col);//[a, b, 5, 6.7, p, true, null, a, 5, Sa(23, 24), a, Sa(7, 8), Sa(9, 10)]
col.remove(0);
System.out.println(col);//[b, 5, 6.7, p, true, null, a, 5, Sa(23, 24), a, Sa(7, 8), Sa(9, 10)]
col.remove(4);
System.out.println(col);//[b, 5, 6.7, p, null, a, 5, Sa(23, 24), a, Sa(7, 8), Sa(9, 10)]
col.remove(9);
System.out.println(col);//[b, 5, 6.7, p, null, a, 5, Sa(23, 24), a, Sa(9, 10)]
System.out.println("6.7 removed: "+ col.remove(6.7));
System.out.println(col);//[b, 5, p, null, a, 5, Sa(23, 24), a, Sa(9, 10)]
System.out.println("null removed: "+ col.remove(null));
System.out.println(col); //[b, 5, p, a, 5, Sa(23, 24), a, Sa(9, 10)]
System.out.println("\"b\" removed: "+ col.remove(new String("b")));
System.out.println(col); //[5, p, a, 5, Sa(23, 24), a, Sa(9, 10)]
System.out.println("Sa(23,24) removed: "+ col.remove(new Sa(23, 24)));
System.out.println(col); //[5, p, a, 5, Sa(23, 24), a, Sa(9, 10)]
col.remove(5);
System.out.println(col); //[5, p, a, 5, Sa(23, 24), Sa(9, 10)]
col.remove((Integer)5);
System.out.println(col); //[p, a, 5, Sa(23, 24), Sa(9, 10)]
//col.remove('p');
col.remove((Character)'p');
System.out.println(col); //[a, 5, Sa(23, 24), Sa(9, 10)]
System.out.println();
System.out.println(col.capacity());
System.out.println(col.size());
System.out.println(col);
col.add(1, "X");
System.out.println(col);
System.out.println(col.capacity());
System.out.println(col.size());
System.out.println();
NITCollection col2 = new NITCollection();
for(int i=1; i