Solved

HashMap - Converting long string values to smaller codes

Posted on 2014-10-24
7
184 Views
Last Modified: 2014-10-25
hi experts

I have a Map<String,String>
Key  value
1      Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER
2      Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER_GMC,RRRRR
3      Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER
4      Prl-transaction Inc. Adjust,Prl-OGRMAA  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER


As you can see  The 'value' in the Map can be very long.

What i want to do is create a new Map with short codes for values something like

Key     value
1       Prl-transaction1
2       Prl-transaction2
3       Prl-transaction1
4       Prl-transaction3

where
Prl-transaction1 = Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER
Prl-transaction2 = Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER_GMC,RRRRR
Prl-transaction3 = Prl-transaction Inc. Adjust,Prl-OGRMAA  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER

* The value for key 1 and 3 are same since they are the same string.

Any idea how i can do that?

Any help will be greatly appreciated
thanks.
0
Comment
Question by:royjayd
  • 5
  • 2
7 Comments
 
LVL 31

Expert Comment

by:awking00
ID: 40402493
Are the keys in the map unique? Your example shows different keys mapping to the same value, but can you have the same key mapping to different values?
0
 

Author Comment

by:royjayd
ID: 40402622
>>Are the keys in the map unique?
Key in Map is always unique, isint it ?
In my code above Key is 1,2,3,4

Each key can only be mapped to one value.
0
 
LVL 31

Expert Comment

by:awking00
ID: 40402647
Also, are your keys actually Strings or are they ints?
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 31

Accepted Solution

by:
awking00 earned 500 total points
ID: 40402758
>>Each key can only be mapped to one value.<<
DOH!  Of course they must. Guess I was having a little brain cramp. How was your map constructed (e.g. as HashMap or TreeMap, or whatever)?
0
 

Author Comment

by:royjayd
ID: 40403411
no worries , i got it working.
I will give you the points for your time.
Thank you.
0
 
LVL 31

Expert Comment

by:awking00
ID: 40404001
Thanks for the points. Could I see what you ended up with as I have been working on the solution but it's not been completed yet?
0
 
LVL 31

Expert Comment

by:awking00
ID: 40404056
Not very elegant, but I got this to work using a temporary map -
import java.util.Collection;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

@SuppressWarnings("unused")
public class TestMap {

	public static Map<String, String> map = new TreeMap<String, String>();
	public static Map<String, String> tempMap = new TreeMap<String, String>();
	public static Map<String, String> newMap = new TreeMap<String, String>();
	public static Collection values;

	public static void main(String[] args) {
		map.put("1","Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER");
		map.put("2","Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER_GMC,RRRRR");
		map.put("3","Prl-transaction Inc. Adjust,Prl-transaction  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER");
		map.put("4","Prl-transaction Inc. Adjust,Prl-OGRMAA  Inc,Prl-transaction POPO Inc.,eer yy uuu,iii  - TESTCLUSTER");

		values = map.values();
		String[] vals = (String[]) values.toArray(new String[0]);
		for (String key : map.keySet()) {
			for (String val : vals) {
				if (map.get(key).toString().equals(val) && !tempMap.containsValue(val))
				{
					tempMap.put(key, val);
					newMap.put(key, val.substring(0, val.indexOf(" ")) + key);
				} else if  (map.get(key).toString().equals(val) && tempMap.containsValue(val))
				{
					String oldKey = getOldKey(val);
					newMap.put(key, val.substring(0, val.indexOf(" ")) + oldKey);
				}
			}
		}
		System.out.println(newMap.toString());
	}
	
	public static String getOldKey(String val) {
		String replaceKey = null;
		for (String oldKey : tempMap.keySet()) {
			if (tempMap.get(oldKey).toString().equals(val)) {
				replaceKey = oldKey;
			}
		}
		return replaceKey;
	}
}

Open in new window

0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now