package com.interview.misc;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class LoadBalancers {
private List<String> servers = new ArrayList<String>();
Map<String,Integer> index = new HashMap<String,Integer>();
public void addServer(String name){
servers.add(name);
index.put(name, servers.size()-1);
}
public void removeServer(String name){
Integer pos = index.get(name);
if(pos == null){
throw new IllegalArgumentException();
}
servers.set(pos, servers.get(servers.size()-1));
servers.remove(servers.size()-1);
}
public String getRandom(){
int r = (int)(Math.random()*1000);
return servers.get(r%servers.size());
}
public static void main(String args[]){
LoadBalancers lb = new LoadBalancers();
lb.addServer("1");
lb.addServer("2");
lb.addServer("3");
lb.addServer("4");
lb.addServer("5");
System.out.print(lb.getRandom());
System.out.print(lb.getRandom());
System.out.print(lb.getRandom());
System.out.print(lb.getRandom());
lb.removeServer("3");
lb.removeServer("1");
System.out.print(lb.getRandom());
System.out.print(lb.getRandom());
System.out.print(lb.getRandom());
System.out.print(lb.getRandom());
}
}