java 实现的P2P Chord算法。chord算法是结构式的P2P搜索与管理协议
源代码在线查看: fingertable.java
package org.mikel.jchord; import java.util.*; /* * FingerTable.java * * Created on 12 de diciembre de 2004, 16:37 */ /** * * @author mikel */ public class FingerTable { private int tama駉; private int indice; //indices de 0 a tama駉-1 private ArrayList tabla; /** * Creates a new instance of FingerTable * @param tama駉 */ public FingerTable(int tama駉) { this.tama駉 = tama駉; this.tabla = new ArrayList(tama駉); indice = 0; } /** * * @param valorInicial */ public void inicializarTabla(Identificador valorInicial){ for(int i=0; i tabla.add(valorInicial); } } /** * * @return */ public int getTama駉() { return tama駉; } /** * * @param indice * @return */ public Identificador getIdNodo(int indice){ return (Identificador) tabla.get(indice); } /** * * @param valor */ public void setNodoIndiceActual(Identificador valor){ tabla.set(indice, valor); } /** * * @return */ public int getIndiceActual(){ return indice; } public void resetIndice(){ indice = 0; } public void siguienteIndice(){ if (indice indice++; else indice=0; } public void imprimir(){ System.out.println("-----TABLA FINGERS-----"); for(int i=0; i System.out.println( ((Identificador) tabla.get(i)).getHash().toString(16) ); System.out.println("-----------------------"); } /** * * @return */ public Identificador valorMaximo() { Identificador max = (Identificador) tabla.get(0); for(int i=1;i if ( Utilidades.bigIntegerMayorQue( ((Identificador) tabla.get(i)).getHash(),max.getHash() )) max=(Identificador) tabla.get(i); } return max; } public ArrayList getArrayList(){ return this.tabla; } }