Ahoj, už delší dobu dumám nad úlohou, na procvičení ArrayListu/práce
s objekty
Mám vytvořit metodu, která smaže prvek na deném indexu pole a potom druhou
metodu, která vymaže všechny výskyty v poli např. s hodnotou 3. Nevím, jak
dál - metody Add atd..mě přišli jednodušší, i když tohle asi taky nebude
složité, ale já prostě nevím jak dál.
import java.util.ArrayList;
publicclass ROcnikovkaHelp {
@SuppressWarnings("empty-statement")
publicstaticvoid main(String[] args) {
Node n1 = new Node(3);
Node n2 = new Node(1);
Node n3 = new Node(10);
Node n4 = new Node(3);
NodeList tp = new NodeList();
tp.addNode(n1);
tp.addNode(n2);
tp.addNode(n3);
tp.addNode(n4);
tp.addFirst(new Node(9));
tp.remove(1); //smaze prvek na ID 1
tp.removeVal(10); //smaze prvek s hodnotou 10//DDU tp.removeAllVal(3); //smaze vsechny vyskyty s hodnotou 3for (int i = 0; i < tp.getSize(); i++) {
int b = tp.get(i);
System.out.println(b);
}
System.out.println(" ");
System.out.println(tp.get(3)); // Vrátí danou pozici v .tp
System.out.println(" ");
System.out.println(tp.getId(9));
}
}
class Node {
privateint value;
private Node next = null;
public Node getNext() {
return next;
}
publicvoid setNext(Node next) {
this.next = next;
}
publicint getValue() {
return value;
}
publicvoid setValue(int value) {
this.value = value;
}
Node(int hodnota) {
value = hodnota;
}
Node(int hodnota, Node n) {
value = hodnota;
next = n;
}
}
class NodeList {
private Node root = null;
privateint size = 0;
int getSize() {
return size;
}
NodeList() {
}
void addNode(Node n) {
size++;
if (root == null) {
root = n;
} else {
Node a = root;
while (a.getNext() != null) {
a = a.getNext();
}
a.setNext(n);
}
}
int get(int i) {
Node a = root;
for (int j = 0; j < i; j++) {
a = a.getNext();
}
return a.getValue();
}
int getId(int z) {
Node a = root;
int i = 0;
while (a.getValue() != z) {
if (a.getNext() == null) {
return -1;
}
a = a.getNext();
i++;
}
return i;
}
void addFirst(Node n){
n.setNext(root);
root = n;
size++;
}
void remove(Node i) {
}
void removeVal(int i) {
}
}
You are the greatest project you will ever work on.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.