Hashing / Mapping question
Hello,
I have an application that creates images based on several integer parameters. In order to speed things up, I want to cash the images in a Map so that I don't need to recreate images whose parameters have already been seen.
Using decimal digits, the ranges of my params are as follows:
1 digit (range 0-3)
3 digits(range 0-999)
4 digits(range 0-4095)
4 digits(range 0-4095)
I want to come up with a unique key based on the possible values of my params. One simple way to do this would be to simply concatenate the values paying attention to 'place value.' So the lowest map value would be zero (all four params 0) and the highest value would be
399940954095 (i.e. 3-999-4095-4095)
but this gives me a value greater than max int.
Can someone suggest a method that would yield a unique integer for each unique combination of my parameters?
Thanks,
Ted
class Key
private final int a;
private final int b;
private final int c;
private final int d;
private final int hash;
public Key(final int a, final int b, final int c, final int d)
this.a = a;
this.b = b;
this.c = c;
this.d = d;
hash = a + 29 * b + 47 * c + 59 * d;
public boolean equals(Object o)
if (o == null || o.getClass != Key.class) return false;
Key other = (Key) o;
return a == other.a && b == other.b && c == other.c && d == other.d;
public int hashCode()
return hash;
}
Similar Messages
-
Passing a Hash Map in a Custom Workflow.
I have a workflow WF_CUSTOM_TXT which inputs credentials such as resource name, type, connection string and then I am passing the attributes as a Hash Map: -
Map attributes =new HashMap();
attributes.put("firstname", "Nakul");
attributes.put("lastname", "Sharma");
When I launch the process in the java code which should pass the Hash Map for the workflow WF_CUSTOM_TXT, but i am unable to do so as I declared the attribute in the wrkflow which can be defined as a String. So mismatch occurs????
Another question that I have is that is it possible for us to pass a set of Multi values attributes as a Hash to a workflow and receive the same and then extract individual elements out of the hash toallocate to variables in the WF. Please provide any suggestions!!!!!!!!can you plz share the code, so that i can get what are you doing and where you stuck.
and also try to initialize the variable with hashmap objcet and the see -
Is there any linked hash map in flex??
Hi
Is there any linked hash map in flex??
Actually I am getting linked hash map from java but the objects inside them are scattered.
Thanks and Regards
Aruna.S.N.See the bottom of this LiveDoc page on ActionScript and Java type conversions.
http://livedocs.adobe.com/flex/3/html/help.html?content=data_access_4.html
If this post answers your question or helps, please mark it as such. -
How to store double variable in hash map
i need to store double variable using hash map, but i cant able to store it
my jsp coding contains
double et=24,j=5;
hm.put("stm",st);
hm.put("etm",et);
Generated servlet error
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\availability_jsp.java:752:
put(java.lang.Object,java.lang.Object) in java.util.Map cannot be applied to (java.lang.String,double)
hm.put("stm",st);
^
how to overcome this problem
thank u in advancedouble etme;
etme = hm.getDouble("etm");
i'm getting this error
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\exam\org\apache\jsp\editdel_jsp.java:85: cannot resolve symbol
symbol : method getDouble (java.lang.String)
location: interface java.util.Map
etme = hm.getDouble("etm");
^
how to solve it
plz help me -
How to find Regular Expressions in a Hash Map
Hi,
I Have a hash map with some keys. The Keys are like this(Java.util.regex, Javax.swing.table, javax.swing.text, Java.util.jar, Java.text etc). Suppose if the user gives the search pattern as "text", the o/p should be javax.swing.text and java.text.. How to do it using regular Expressions// Sample code...
import java.util.regex.*;
public class TestRegex {
public static void main(String[] args) {
String test1 = "java.util.regex";
String test2 = "javax.swing.text";
String test3 = "java.util.jar";
String test4 = "java.text";
Pattern pat = Pattern.compile(".*text.*");
Matcher mt1 = pat.matcher(test1);
System.out.println("1> " +mt1.matches());
Matcher mt2 = pat.matcher(test2);
System.out.println("2> " +mt2.matches());
Matcher mt3 = pat.matcher(test3);
System.out.println("3> " +mt3.matches());
Matcher mt4 = pat.matcher(test4);
System.out.println("4> " +mt4.matches());
} -
hi,
I tried creating an array of hash maps in my application .
but it continued to give me problem
can any of u help me in this regard.
thank youint SIZE=...;
HashMap[] maps=new HashMap[SIZE];
for(int i=0; i<maps.length; i++){
maps=new HashMap();
Gil
Or, for a purposely misleading solution...int SIZE=...;
HashMap[] maps = new HashMap[SIZE];
java.util.Arrays.fill(maps, new HashMap()); -
Hi All ,
I i have the data in below format:
Name Age Skill Company
Vass 21 Java Zylog
Samy 24 PB HP
Lee 18 ADF CTS
Reng 16 Java Info
I converted this data into java collections List<Hash Map> like this.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
public class HashMapDemo {
public static void main(String[] args) {
// Create a hash map
List<HashMap> list = new ArrayList<HashMap>();
HashMap hm = new HashMap();
hm.put("Name", new String("Vass"));
hm.put("Age", new Integer(21));
hm.put("Company", new String("Zylog"));
hm.put("skill", new String("Java"));
list.add(hm);
HashMap hm1 = new HashMap();
hm1.put("Name", new String("Samy"));
hm1.put("Age", new Integer(24));
hm1.put("Company", new String("HP"));
hm1.put("skill", new String("PB"));
list.add(hm1);
HashMap hm2 = new HashMap();
hm2.put("Name", new String("Lee"));
hm2.put("Age", new Integer(18));
hm2.put("Company", new String("CTS"));
hm2.put("skill", new String("ADF"));
list.add(hm2);
HashMap hm3 = new HashMap();
hm3.put("Name", new String("Reng"));
hm3.put("Age", new Integer(16));
hm3.put("Company", new String("Info"));
hm3.put("skill", new String("Java"));
list.add(hm3);
Iterator i = list.iterator();
while (i.hasNext()) {
System.out.println(i.next());
} As per data (table format) i want to sort the data in Column level
how can i to achieve ?.
List<HashMap> is type of collection is help to me?
Any idea?
Thanks,
Vass LeeCheck out Comparator, and use Google to find examples on how to use it.
http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html
Still sorting a collection of hashmaps is a bit odd design though. I think you want to create a simple class with properties in stead of a HashMap, then implement Comparable on that class. -
Hi,
[b] how to sort hash map contains integer objects,
HashMap map=new HashMap();
map.put("1",new Integer("1"));
map.put("2",new Ineger("2")):
map.put("3",new Ineger("3")):
map.put(4,new Integer("4"));
map.put("10",new Integer("10"));
map.put("11",new Integer("11"));
map.put("12",new Integer("12"));
map.put("20",new Integer("20"));
map.put(30,new Integer("30"));
if i am using treemap
TreeMap map1=new TreeMap(map);
System.out.println(map1);
answer is
1 ,10,11,12,2,20,3,30,4
but i am accepting the results
1,2,3,4,10,11,12,20,30.
what to do
with regardsshannu sarma[/b]This is usual behaviour of a Map. You cannot sort a Set or Map. You can sort a List only using Collections.sort().
If you want to use a Map which adds all elements according to the order you've added it, then use LinkedHashMap.
And if you want to capture the keys, use Map.values() which returns an ordered Collection (and after converting it to List, you can sort it).
Another approach is to create a wrapper object and put it in a List. Then you can use the java.util.Comparator to sort objects in a List. -
Is it possible to insert a value in a hash map at a perticular index ?
Hello Techies,
I have a drop down list which is used to select a contry name. I also contains " All " option which is used to select all countries.
I am using HashMap for this drop down list for getting corresponding value.
Now, my requirement is the " All " should display as the first in the drop down list. Hash map didn't support bcoz it is in sorted order,
Can any one help me with alternative solution ?
Thanks in advance.
JavedNow, my requirement is the " All " should display as the first in the drop down
list. Hash map didn't support bcoz it is in sorted order,Rather HashMap doesn't support this because according to the first paragraph
of its API documentation "This class makes no guarantees as to the order of the
map; in particular, it does not guarantee that the order will remain constant over
time".
Is the drop down list a JComboBox? If so how are you using the hash map?
And can't you just create an array from the hash map's keys, putting "All" at the
start? -
How to create a dicitionary using hash map.
Hi All,
I want to create a dictionary using hash map where in i can add new words and there meaning. I have written some code But I am not happy with this. Can you suggest me how to add the words and there meanings to the hash map.
I am not able to add the words and there meaning to the hash map.
for this i tried creating a dictionary class.
// Using hashmap
import java.util.*;
public class Dictionary
public static void main(String[] args)
// Create a hash map
HashMap hm = new HashMap();
// put elements to the map
hm.put("Abode: ", "Home");
hm.put("Balance: ", "An intrument to measure or weigh");
hm.put("Car: ", "Automobile");
hm.put("Dinner: ","Last meal of the day generally had after evening and before sleeping");
hm.put("Embossed: ", "Engraved kind");
Set set = hm.entrySet();
Iterator i = set.iterator();
while (i.hasNext())
Map.Entry me = (Map.Entry) i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
System.out.println();
}This is the other Dictionary class which i created.
public class Main_Dictionary
public static void main(String[] args)
Content_Dictionary cd = new Content_Dictionary();
cd.getContent_Dictionary("Abode", "Home");
cd.displayValues();
class Content_Dictionary
String word, meaning;
Content_Dictionary()
word = "a";
meaning = "b";
Content_Dictionary(String x, String y)
word = x;
meaning = y;
void getContent_Dictionary(String w, String m)
word = w;
meaning = m;
void displayValues()
System.out.print(word + ": ");
System.out.println(meaning);
}If i create an interface containing all the words and there meaning
public interface Words_Dictionary
String Abode = "Home";
String Dark = "Lacking brightness";
String Balance = "An intrument to measure or weigh";
String Car = "Type of Automobile";
String Dinner = "Last meal of the day";
String Embossed = "Engraved kind";
String Adroit = "SkillFul";
}and then create a another class which implements this interface, but how should i add these words and there meaning in the hashmap.I tried creating word document but i was unable to
figure out how to do the operations on the word
document and its content,
So This is what i could come up with, i just created
one class Dictionary , now I am able to search for
the meaning of the word specified by me, and I am
able to print all the words and there meanings added
to the hashmap, but i am not able to figure out how
to add a new word and the meaning in the hashmap and
how to find is a word is there or not...May I suggest a slightly different approach?
Do not create a String ==> String mapping, but a String ==> List<String> mapping. And do NOT place everything inside your main method.
Here's a small demo:
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
public class Dictionary {
private Map< String, List<String >> dictionary;
public Dictionary() {
dictionary = new HashMap< String, List<String >>();
public void addWord(String base, String meaning) {
List<String> allMeanings = dictionary.get(base);
if(allMeanings == null) { // if null, there is no entry mapped to 'base' yet: create a new one
List<String> newMeanings = new ArrayList<String>();
newMeanings.add(meaning);
dictionary.put(base, newMeanings);
} else {
allMeanings.add(meaning);
public List<String> search(String base) {
// your code here
return null;
// ... other methods ...
public String toString() {
StringBuilder strb = new StringBuilder();
for(Map.Entry< String, List<String >> e : dictionary.entrySet()) {
strb.append(e.getKey());
strb.append(" : ");
strb.append(e.getValue());
strb.append('\n');
return strb.toString();
public static void main(String[] args) {
Dictionary dict = new Dictionary();
dict.addWord("Abode", "Home");
dict.addWord("Abode", "House");
dict.addWord("Car", "Automobile");
dict.addWord("Car", "Vehicle");
System.out.println(dict);
}Good luck. -
CRMXIF_REL_SAVE_M01 - Mapping Question
Hello All,
I have a mapping question, hope some one can answer my question. Please see the link first and the see my question
http://www.flickr.com/photos/8764045@N06/4265246260/sizes/o/
I'm mapping the CRM IDOC to the JDBC Call. I have small problem here. All the target fields are Mandatory 1..1 .
I will explain with an example:
I have field from source E102BUS_EI_STRUC_TEL_DATA/COUNTRY mapped to target field.
I used Map With Default so that even if the values are not there frm the source the target field will be mapped with blank.
But the problem is the parent node for E102BUS_EI_STRUC_TEL_DATA is E102BUS_EI_BUPA_TELEPHONE is 0.999999 , so sometimes that segment is not coming. In this case Map with Default won't work. Map with Default willl work only if the Parent node is present.
If you ask me to do Exists node function on E102BUS_EI_BUPA_TELEPHONE and then apply Map with Default, then even this won't work.
Apologize if I confused you guys. Please let me know if you need more clarification.
Thanks!
Raj.Hi Raj,
Try to do a mapping like this
E102BUS_EI_STRUC_TEL_DATA(context E102S_EI_BUPA_TELEPHONE_CON)--mapwithdefault-->then
E102BUS_EI_BUPA_TELEPHONE-->exists------------------------------------------------------------------>if---->splitbyValue
let us say this output (the output of splitbyvalue) as 'VALUE'
VALUE-----------------------------------------------> then
VALUE|-->count--->greater----------------------->if----->targetField
Constant(0)----> Constant(blank)-->else
Regards
Suraj -
My while loop doesnt seem to work in a hash map, it works fine when I loop an array list.
It compiles but it doesnt seem to find any employees, should I use another loop?
{code
public Employee find(String id)
Employee foundEmployee = null;
int index = 0;
boolean found = false;
while(index < register.size() && !found){
Employee right = register.get(index);
String namn = right.getName();
if (namn.equals(id)){
foundEmployee = right;
found = true;
index++;
return foundEmployee;
what if you looped on the key set?
public Employee find(String id)
Employee foundEmployee = null;
Set<Integer> keySet = register.keySet();
for (Integer key : keySet)
Employee right = register.get(key);
if (right.getName().equals(id))
foundEmployee = right;
break;
return foundEmployee;
}
what if you looped on the key set?
public Employee find(String id)
Employee foundEmployee = null;
Set<Integer> keySet = register.keySet();
for (Integer key : keySet)
Employee right = register.get(key);
if (right.getName().equals(id))
foundEmployee = right;
break;
return foundEmployee;
}
A top difficulty mapping question
Hello
dose anyone can give solution for this mapping question?
soruce :
<header>header</header>
<item>
<A>a1</A>
<B>b1</B>
<C>c1</C>
</item>
<item>
<A>a2</A>
<B>b2</B>
<C>c2</C>
</item>
<item>
<A>a3</A>
<B>b3</B>
<C>c3</C>
</item>
target:
<header>header</header>
<item>
<A>a1,a2,a3 .....</A>
<B>b1,b2,b3 .....</B>
<C>c1,c2,c3 .....</C>
</item>
The numbers of item is not fixed,it is unbounded.
so the target line length is not fixed at design time
welcome any hits,
Thanks !!
BR,
Jeffrey
Hi,
Use cache parameter as Context.
public void add_element(String[] a,ResultList result,Container container)
//write your code here
String c = "";
int i;
for(i= 0 ; i < a.length; i++)
c = c + a<i> ;
if(i != (a.length-1))
c = c + ",";
result.addValue(c);
A(src)-->removecontext->UDF--->A(tgt)
B(src)--->removecontext->UDF--->B(tgt)
C(src)--->removecontext->UDF--->C(tgt)
SYSERR(root): hash map "Alias0"
Hi,
I am getting the following errors on Solaris 10, can anybody help me how to fix these errors?
SYSERR(root): hash map "Alias0": unsafe map file /etc/mail/aliases.db: World writable directory"
SYSERR(root): dbm map "Alias0": unsafe map file /etc/mail/aliases: No such file or directory"
Thanks in advance
Br
MJ Awan
those errors are telling you:
1. that you need to run /etc/mail/cf/sh/check-permissions. Also check that your / (root) directory perms are 755.
2. you need to create or restore your /etc/mail/aliases file. Hopefully you have an /etc/mail/aliases.db file?
Hi
Just a quick one
I have two hash maps - each containing information on the location of characters in a individual string.
Is there some sort of method that allows me to compare the two maps and return the string locations where they contain the same information ?
Hi evett,
You might want to check out the method "entrySet()" in the Map class, once you get the 2 Set's, you can then use the "retainAll()" method of a Set to only keep the information that is the same in both Set's (which contains the information you want).
Good Luck,
Bud
Maybe you are looking for
-
Can someone tell me how to delete my account
Can someone tell me how to delete an iTunes account?
-
When I call CANopen TPDO Create.vi to create TPDO objects I can only input PDO1 through PDO4. How do I work with more than four PDOs? I see the other forum thread using an older version of CANopen, but it does not appear to directly translate into th
-
Error msg: iTunes cannot run because some of its required files are missing
I keep getting this msg despite reinstalling - this started happening after a Windows update. I've turned off my antivirus while installing each time. Does anyone know what's wrong?
-
Work Center Hierarchy and Capacity
Hello SAP friends, Can someone please help me with the following scenario? I have 3 Work Centers MAQ00 - (Capacity 10:00 x 2) MAQ01 - 8:00 -- 18:00 (Capacity 10:00) MAQ02 - 8:00 -- 18:00 (Capacity 10:00) I have a hierarchy HICY01 MAQ00 - Root of hier
-
How to prevent unicode conversion in Java?
Hi all, There are some existing Chinese characters stored in our RDBMS using charset=IBMPC850. The text can correctly be displayed using a window GUI developed by Visual C++ by declaring the field as DBCS. However, when I tried to retrieve the Chines