HashArray in Java?? or call element by name, not by index

User avatar
Siberian Cableman
Уже с Приветом
Posts: 1222
Joined: 02 Jan 2002 10:01
Location: Bellevue, WA

HashArray in Java?? or call element by name, not by index

Post by Siberian Cableman »

Привет народ,

Нужна помощь, мне нужно сформировать массив of string так что бы я мог вызывать елементy массива не по индексу, а по имени (also strings). Что то типа:

public String[] sRetArray () {
// Как-то создаем и заполняем этот массив, типа
sNewRetArray["element1"] = "Privet ";
sNewRetArray["element2"] = "Alex";

return sNewRestArray;
}

Далее вызиваем эту функцию:
sArray = sRetArray ();

И используем элементи:
System.out.println ( sArray["element1"] + sArray["element2"] );

Я понимаю, что написал блок схему очень вольно, но это должно быть понятно.
посему теперь вопрос, как это сделать в Java?.
По каким клучевым словам искать в Google?

А если кто-нибудь может привести кусочек кода, это было бы GREAT

Спасибо,
Алекс
User avatar
hooch
Уже с Приветом
Posts: 1169
Joined: 16 Jan 2003 23:23

Re: HashArray in Java?? or call element by name, not by index

Post by hooch »

Siberian Cableman wrote:Привет народ,

Нужна помощь, мне нужно сформировать массив of string так что бы я мог вызывать елементy массива не по индексу, а по имени (also strings). Что то типа:

public String[] sRetArray () {
// Как-то создаем и заполняем этот массив, типа
sNewRetArray["element1"] = "Privet ";
sNewRetArray["element2"] = "Alex";

return sNewRestArray;
}

Далее вызиваем эту функцию:
sArray = sRetArray ();

И используем элементи:
System.out.println ( sArray["element1"] + sArray["element2"] );

Я понимаю, что написал блок схему очень вольно, но это должно быть понятно.
посему теперь вопрос, как это сделать в Java?.
По каким клучевым словам искать в Google?

А если кто-нибудь может привести кусочек кода, это было бы GREAT

Спасибо,
Алекс


HashMap, Hashtable, TreeMap.
google
Уже с Приветом
Posts: 136
Joined: 19 Mar 2003 11:18
Location: Moscow -> NYC ->CT

Re: HashArray in Java?? or call element by name, not by index

Post by google »

Siberian Cableman wrote:Привет народ,

.....
А если кто-нибудь может привести кусочек кода, это было бы GREAT

Спасибо,
Алекс

Вот учебный пример, оказавшийся рядом, на HashTable от Дарвина (JAVA Cookbook)


Code: Select all

import java.util.*;

/**
 * Demonstrate the Hashtable class, and an Enumeration.
 * @see HashMapDemo, for the newer HashMap class.
 */
public class HashTableDemo {

   public static void main(String[] argv) {

      // Construct and load the hash. This simulates loading a
      // database or reading from a file, or wherever the data is.

      Hashtable h = new Hashtable();

      // The hash maps from company name to address.
      // In real life this might map to an Address object...
      h.put("Adobe", "Mountain View, CA");
      h.put("IBM", "White Plains, NY");
      h.put("Learning Tree", "Los Angeles, CA");
      h.put("Microsoft", "Redmond, WA");
      h.put("Netscape", "Mountain View, CA");
      h.put("O'Reilly", "Sebastopol, CA");
      h.put("Sun", "Mountain View, CA");

      // Two versions of the "retrieval" phase.
      // Version 1: get one pair's value given its key
      // (presumably the key would really come from user input):
      String queryString = "O'Reilly";
      System.out.println("You asked about " + queryString + ".");
      String resultString = (String)h.get(queryString);
      System.out.println("They are located in: " + resultString);
      System.out.println();

      // Version 2: get ALL the keys and pairs
      // (maybe to print a report, or to save to disk)
      Enumeration k = h.keys();
      while (k.hasMoreElements()) {
         String key = (String) k.nextElement();
         System.out.println("Key " + key + "; Value " +
            (String) h.get(key));
      }
   }
}
User avatar
Siberian Cableman
Уже с Приветом
Posts: 1222
Joined: 02 Jan 2002 10:01
Location: Bellevue, WA

Post by Siberian Cableman »

Here is what I found:

Code: Select all

class HashSampleUse {
    public HashMap getHashMap () {
 
        HashMap hashMap = new HashMap();
        hashMap.put( "element1", "Hello " );
        hashMap.put( "element2", "Alex" );
        return hashMap;
    }
 
    static public void main () {
        HashSampleUse hsu = new HashSampeUse();
        HashMap hm = hsu.getHashMap();
        System.out.println ( hm.get( "element1" ).toString() + hm.get( "element2" ).toString() );
    }
}

Return should be Hello Alex string.
My question is if it is possible to modify this code/ find another solution to call elements by names like
System.out.println ( hm[ "element1"] + hm[ "element2"] );,

that avoids using get() function and toString() method?
User avatar
Siberian Cableman
Уже с Приветом
Posts: 1222
Joined: 02 Jan 2002 10:01
Location: Bellevue, WA

Post by Siberian Cableman »

Google,

Thanks for the sample

Return to “Вопросы и новости IT”