, , , Java-.
, Arraylist . - Java.Util ArrayList, , , ! Animal? AnimalList. ArrayList (, , , Java ArrayList)? , , !
Animal , , , .
Iterator, Iterable (, Java ArrayList), Iterator. , . ! , . .
toString, Animal @2a139a55, , Animal. toString, . java- , , , , toString, - .
, ArrayList ( Arraylist), resize array coud:
import java.util.Iterator;
import java.util.NoSuchElementException;
class Animal{
String dog;
String cat;
@Override
public String toString() {
return "Dog: " + dog + "\nCat: " + cat + "\n\n";
}
}
public class Arraylist<Item> {
public Item list[];
private int N = 0;
public Arraylist() {
list = (Item[]) new Object[2];
}
public boolean isEmpty() {
return N == 0;
}
public int size() {
return N;
}
private void resize(int max) {
Item[] temp = (Item[]) new Object[max];
for (int i = 0; i < N; i++) {
temp[i] = list[i];
}
list = temp;
}
public void add(Item item) {
if (N == list.length)
resize(2 * list.length);
list[N++] = item;
}
public Item remove() {
if (isEmpty())
throw new NoSuchElementException();
Item item = list[N-1];
list[N-1] = null;
N--;
if (N > 0 && N == list.length/4)
resize(list.length/2);
return item;
}
public Iterator<Item> iterator() {
return new ArraylistIterator();
}
private class ArraylistIterator implements Iterator<Item> {
private int current = 0;
private ArraylistIterator() {
current = 0;
}
@Override
public boolean hasNext() {
return (current != N);
}
@Override
public Item next() {
if (hasNext())
return list[current++];
throw new NoSuchElementException();
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
public static void main (String[] args) {
Animal var=new Animal();
Animal var2=new Animal();
Animal var3=new Animal();
Animal var4=new Animal();
var.dog="german";
var.cat="persian";
var2.dog="german1";
var2.cat="persian1";
var3.dog="german2";
var3.cat="persian2";
var4.dog="german3";
var4.cat="persian3";
Arraylist al = new Arraylist();
al.add(var);
al.add(var2);
al.add(var3);
al.add(var4);
Iterator itr= al.iterator();
while(itr.hasNext())
{
System.out.print(itr.next());
}
}
}
, !