RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package rlpark.plugin.rltoys.envio.observations; 00002 00003 import java.io.Serializable; 00004 import java.util.ArrayList; 00005 import java.util.Arrays; 00006 import java.util.LinkedHashMap; 00007 import java.util.List; 00008 import java.util.Map; 00009 00010 public class Legend implements Serializable { 00011 private static final long serialVersionUID = -3941386571561190239L; 00012 final private Map<String, Integer> legend = new LinkedHashMap<String, Integer>(); 00013 00014 public Legend(String... labels) { 00015 this(Arrays.asList(labels)); 00016 } 00017 00018 public Legend(List<String> labels) { 00019 for (int i = 0; i < labels.size(); i++) { 00020 String label = labels.get(i); 00021 legend.put(label, i); 00022 } 00023 } 00024 00025 final public int indexOf(String label) { 00026 Integer index = legend.get(label); 00027 return index != null ? index : -1; 00028 } 00029 00030 public boolean hasLabel(String label) { 00031 return legend.containsKey(label); 00032 } 00033 00034 public int nbLabels() { 00035 return legend.size(); 00036 } 00037 00038 public Map<String, Integer> legend() { 00039 return legend; 00040 } 00041 00042 public String label(int i) { 00043 for (Map.Entry<String, Integer> entry : legend.entrySet()) 00044 if (entry.getValue() == i) 00045 return entry.getKey(); 00046 return "unknown"; 00047 } 00048 00049 public List<String> getLabels() { 00050 return new ArrayList<String>(legend.keySet()); 00051 } 00052 00053 @Override 00054 public String toString() { 00055 return String.valueOf(legend); 00056 } 00057 00058 public void replace(String orig, String dest) { 00059 int index = indexOf(orig); 00060 legend.remove(orig); 00061 legend.put(dest, index); 00062 } 00063 }