Gennemløb af ArrayList
HejsaJeg har en klasse Node der ser sådan her ud:
public class Node {
private String ip;
private int SHA;
private Node successor;
public Node(String ip, int SHA) {
this.ip = ip;
this.SHA = SHA;
}
public void setIP(String ip){
this.ip = ip;
}
public String getIP(){
return ip;
}
public void setSHA(int SHA){
this.SHA = SHA;
}
public int getSHA(){
return SHA;
}
public void setSuccessor(Node successor){
this.successor = successor;
}
public Node getSuccessor(){
return successor;
}
}
To af dens felter bliver instantieret i konstruktøren, mens det tredje felt Successor skal instantieres i en metode som jeg har problemer med.
public static void main(String[] args){
//Node node = new Node("192.156.102");
//System.out.println("IP: " + node.getIP());
//node.setIP(IpConstructor.generateIP());
//System.out.println("IP: " + node.getIP());
//node.setSHA(node.hashIP(node.getIP()));
ArrayList<Node> list = new ArrayList<Node>();
for (int k = 0 ; k < 10 ; k++) {
list.add(new Node(new Integer(k).toString(), k));
}
setSuccessorList(list);
for (int j = 0 ; j < list.size() ; j++) {
Node current = list.get(j);
System.out.println("IP: " + current.getIP()+ " " + current.getSHA() + " " + current.getSuccessor().getSHA());
System.out.println("IP: " + current.getIP()+ " " + current.getSHA() + " " ); //+ current.getSuccessor().getSHA());
}
} // main
public static void setSuccessorList(ArrayList<Node> list) {
//setSuccessor
for (int i = 0 ; i < list.size() ; i++) {
Node current = list.get(i);
setSuccessor (list, current);
}
}
public static void setSuccessor(ArrayList<Node> list, Node current) {
int SHAcurrent = current.getSHA();
Node successor = current;
for (int n = 0 ; n < list.size() ; n++) {
//if (n == (list.size()-1)) {
// current.setSuccessor(current);
//}
if (successor.getSHA() > (list.get(n).getSHA() - SHAcurrent)) {
current.setSuccessor(list.get(n));
}
}
}
Her er min main metode og de to metoder der skal gennemløbe en arrayList og sætte Successoren på hver Node.
Pt. laver jeg bare 10 Noder i en for-løkke, men meningen er at der skal være X-antal Noder i arraylisten der ikke er sorteret.
Dvs. at når jeg starter min main-metode op skal alle Noder i listen gennemløbes og dens Successor findes.
Successor til en Node er den Node i ArrayListen der har den nærmeste større SHA.
Jeg har brug for et par friske øjne til at se på det.
Håber der er en der kan hjælpe.
Mvh.
Rasmus
