Java hashmap из команды python dict? - PullRequest
0 голосов
/ 25 апреля 2011

У меня странная проблема, которую я не до конца понимаю, как ее решить.Может кто-нибудь дать мне несколько советов по хеш-картам?

У меня есть переменная:

/servlet/charting?base_color=grey&chart_width=288&chart_height=160&chart_type=png&chart_style=manufund_pie&3DSet=true&chart_size=small&leg_on=left&static_xvalues=10.21,12.12,43.12,12.10,&static_labels=blue,red,green,purple"

Я хочу, чтобы 10.21,12.12,43.12,12.10 ассоциировались с синим, красным, зеленым,фиолетовый (в указанном порядке)

В Python я создал метод, который делает это с:

def stripChart(name):
    name = str(name)
    name = urlparse.urlparse(name)
    name = cgi.parse_qs(name.query)
    name = dict(zip( name['static_labels'][0].split(','), name['static_xvalues'][0].split(',')))

Не уверен, как это сделать в Java.Пока у меня есть:

URL imgURL = new URL (imgTag);
String[] result = imgURL.getFile().split("&");
 for (int x=0; x<result.length; x++)
     System.out.println(result[x]);

Это дает мне:

chart_width=288
chart_height=160
chart_type=png
chart_style=manufund_pie
3DSet=true
chart_size=small
leg_on=left
static_xvalues=10.21,12.12,43.12,12.10,
static_labels=blue,red,green,purple,

На данный момент я запутался, как связать значения static_labels и static_xvalues.

Большое спасибо.Любые указатели были бы великолепны.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

Посмотрите на использование java.util.HashMap.Допустим, вы сохранили параметры запроса static_xvalues ​​и static_labels в соответствующие строковые переменные.Что-то вроде следующего создаст для вас отображение:

String[] vals = static_xvalues.split(",");
String[] labels = static_labels.split(",");
HashMap<String,String> map = new HashMap<String,String>();
for (int i=0; i <  vals.length; ++i) {
  map.put(labels[i], values[i]);
}

Вы не говорите, нужно ли хранить значения x как числа с плавающей запятой или нет.Если это так, вам сначала нужно будет преобразовать массив vals в массив Float (или Double) и соответствующим образом изменить экземпляр HashMap:

HashMap<String,Float> = new HashMap<String,Float>();
0 голосов
/ 25 апреля 2011

Вы хотите посмотреть StringTokenizer

Примерно так (при условии, что вы сохранили метки в String 'static_labels' и значения в String 'static_xvalues'):

HashMap<String, Double> colorMap = new HashMap<String, Double>();
StringTokenizer labelTok = new StringTokenizer(static_labels, ",");
StringTokenizer valuesTok = new StringTokenizer(static_xvalues, ",");
while(labelTok.hasMoreElements()){
  assert(valuesTok.hasMoreElements());
  colorMap.put(labelTok.nextElement(), Double.parseDouble(valuesTok.nextElement()));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...