Blue Master
Poštovan
- Učlanjen(a)
- 01.06.2014
- Poruke
- 9
- Poena
- 51
Dobio sam primer kako treba da uradim svoju kolekciju,ali u kodu mi nisu jesne neke stvari,pa ako neko zna da mi malo pojasni.Nije mi jasan ovaj deo
rivate E[] lista = (E[]) new Object[duzina];jel mora E lista?jel moze mozda Arrey?
takodje na znam za sta tacno sluzi System.arraycopy?
ovaj deo mi je konfuzan:int num = duzina - index - 1;
if (num > 0) {
System.arraycopy(lista, index + 1, lista, index, num);
}
lista[--duzina] = null;
}
public class RadosKolekcija<E> implements RadosKolekcijaInterface<E> {
private int duzina = 0;
private E[] lista = (E[]) new Object[duzina];
/**
* Prazan konstruktor.
*/
public RadosKolekcija() {
}
/*
* Brise element iz liste koji se nalazi na zadatom indeksu.
*/
private void brisanjeElementa(int index) {
int num = duzina - index - 1;
if (num > 0) {
System.arraycopy(lista, index + 1, lista, index, num);
}
lista[--duzina] = null;
}
/*
* Proverava da li zadati indeks izlazi iz opsega liste i ako izlazi
* baca IndexOutOfBoundsException.
*/
private void proveriIndex(int index) {
if (index >= duzina || index < 0) {
throw new IndexOutOfBoundsException("Indeks je van opsega liste.");
}
}
@Override
public void dodajRados(E obj) {
lista = Arrays.copyOf(lista, ++duzina);
lista[duzina - 1] = obj;
}
@Override
public E uzmiRados(int index) {
proveriIndex(index);
return lista[index];
}
@Override
public void ukloniRados(E obj) {
for (int i = 0; i < duzina; i++) {
if (lista.equals(obj)) {
brisanjeElementa(i);
break;
}
}
}
@Override
public E ukloniRados(int index) {
proveriIndex(index);
E uklonjen = lista[index];
brisanjeElementa(index);
return uklonjen;
}
@Override
public void izmeniRados(int index, E obj) {
proveriIndex(index);
lista[index] = obj;
}
@Override
public void isprazniRados() {
for (int i = 0; i < duzina; i++) {
lista = null;
}
duzina = 0;
}
@Override
public int brElemenataRados() {
return duzina;
}
@Override
public E dajPrviRados() {
if (duzina == 0) {
throw new NullPointerException("Lista je prazna.");
}
return lista[0];
}
@Override
public E dajZadnjiRados() {
if (duzina == 0) {
throw new NullPointerException("Lista je prazna.");
}
return lista[duzina - 1];
}
}
takodje na znam za sta tacno sluzi System.arraycopy?
ovaj deo mi je konfuzan:int num = duzina - index - 1;
if (num > 0) {
System.arraycopy(lista, index + 1, lista, index, num);
}
lista[--duzina] = null;
}
public class RadosKolekcija<E> implements RadosKolekcijaInterface<E> {
private int duzina = 0;
private E[] lista = (E[]) new Object[duzina];
/**
* Prazan konstruktor.
*/
public RadosKolekcija() {
}
/*
* Brise element iz liste koji se nalazi na zadatom indeksu.
*/
private void brisanjeElementa(int index) {
int num = duzina - index - 1;
if (num > 0) {
System.arraycopy(lista, index + 1, lista, index, num);
}
lista[--duzina] = null;
}
/*
* Proverava da li zadati indeks izlazi iz opsega liste i ako izlazi
* baca IndexOutOfBoundsException.
*/
private void proveriIndex(int index) {
if (index >= duzina || index < 0) {
throw new IndexOutOfBoundsException("Indeks je van opsega liste.");
}
}
@Override
public void dodajRados(E obj) {
lista = Arrays.copyOf(lista, ++duzina);
lista[duzina - 1] = obj;
}
@Override
public E uzmiRados(int index) {
proveriIndex(index);
return lista[index];
}
@Override
public void ukloniRados(E obj) {
for (int i = 0; i < duzina; i++) {
if (lista.equals(obj)) {
brisanjeElementa(i);
break;
}
}
}
@Override
public E ukloniRados(int index) {
proveriIndex(index);
E uklonjen = lista[index];
brisanjeElementa(index);
return uklonjen;
}
@Override
public void izmeniRados(int index, E obj) {
proveriIndex(index);
lista[index] = obj;
}
@Override
public void isprazniRados() {
for (int i = 0; i < duzina; i++) {
lista = null;
}
duzina = 0;
}
@Override
public int brElemenataRados() {
return duzina;
}
@Override
public E dajPrviRados() {
if (duzina == 0) {
throw new NullPointerException("Lista je prazna.");
}
return lista[0];
}
@Override
public E dajZadnjiRados() {
if (duzina == 0) {
throw new NullPointerException("Lista je prazna.");
}
return lista[duzina - 1];
}
}