符号表
key-value
- 无序
//插入 数据到链表的头部
public void put(Key key, Value value){
Node n =head;
while(n.next!=null){
n=n.next;
if(n.key.equals(key)){
n.value=value;
return ;
}
}
Node newnode = new Node (key,value,null);
Node oldfirst = head.next;
newnode.next= oldnode ;
head.next = newnode;
N++;
}
public void delete(Key key){
Node n =head;
while(n.next!=null){
if(n.next.key.equals(key)){
n.nxet = n.next.next;
N--;
return ;
}
n=n.nxet;
}
}
public Value get (Key key){
Node n=head;
while(n.next!=null){
if(n.next.key.equals(key)){
return n.next.value;
}
n=n.next;
}
}
- 有序
//实现comparable 接口
public void put(Key key,Value value){
Node curr =head.next;
Node pre = head;
while(curr != null && key.compareTo(curr.key)>0){
pre =curr;
curr=curr.next;
}
if(curr != null && key.compareTo(curr.key)==0){
curr.value = value;
return;
}
Node newnode =new Node (keu,value ,curr);
pre.next = newnode ;
N++;
}