?
Solved

Arraylist elements Compare with HashMap keys

Posted on 2009-06-30
9
Medium Priority
?
583 Views
Last Modified: 2013-12-29

ArrayList<String> superList = new ArrayList<String>();

superList.add("A");superList.add("B");
superList.add("C");superList.add("E");superList.add("D");


HashMap hm = new HashMap();

hm.put("B","1111");
hm.put("D","1112");
hm.put("A","1113");
hm.put("E","1114");

I have to copmapre superList elements with the keys of HashMap hm where the matching key is there

there i have to pull the corresponding value of it and put it in a List.

Like
ArrayList al = new ArrayList();
al sud contain {1113,1111,1114,1112}


ArrayList<String> superList = new ArrayList<String>();
 
superList.add("A");superList.add("B");
superList.add("C");superList.add("E");superList.add("D");
 
 
HashMap hm = new HashMap();
 
hm.put("B","1111");
hm.put("D","1112");
hm.put("A","1113");
hm.put("E","1114");
 
I have to copmapre superList elements with the keys of HashMap hm where the matching key is there
 
there i have to pull the corresponding value of it and put it in a List.
 
Like
ArrayList al = new ArrayList();
={1113,1111,1114,1112}

Open in new window

0
Comment
Question by:satyabrata25
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 3
9 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 24745804
0
 

Author Comment

by:satyabrata25
ID: 24746374
ArrayList<String> superList = new ArrayList<String>();

            superList.add("A");superList.add("B");superList.add("C");superList.add("E");superList.add("D");

            HashMap hm = new HashMap();
            hm.put("B","1111");hm.put("D","1112");hm.put("A","1113");hm.put("E","1114");
            
            Set<String> set =new HashSet<String>();
        Iterator it = superList.iterator();
         while (it.hasNext())
         {
                // Get element
                String element = (String)it.next();
                set.add(element);
          }
         System.out.println("list in set"+set);
         
         Set common = new HashSet(set.keySet());
         common.retainAll( hm.keySet());
           System.out.println(common);
After converting my list to hashset the set.keySet() will not work right.
ur logic will not work in that case...how to get those values to fit into ur logic....
            
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 750 total points
ID: 24746517
>>Set common = new HashSet(set.keySet());

should be

Set common = new HashSet(superList);
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 86

Expert Comment

by:CEHJ
ID: 24746521
With generics:

Set<String> common = new HashSet<String>(superList);
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24748386
The rest of it would be as follows:
        common.retainAll(hm.keySet());
        List<String> valuesList = new ArrayList<String>(common.size());
        for (String key : common) {
            valuesList.add(hm.get(key));
        }
        System.out.println(valuesList);

Open in new window

0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24752768
:-)
0
 

Author Comment

by:satyabrata25
ID: 24753020

ITS FAILING>>>>
public class test5
{
      public ArrayList<String> getData(HashMap<String, ArrayList<String>> AMap,ArrayList<String> temp)
      {
            
            System.out.println(" Invloking getData ");
            Set<String> tempSet = new HashSet<String>(temp);
        System.out.println("getData "+tempSet);
        Set commonKeys = new HashSet(AMap.keySet());
        ArrayList<String> ruleGroupIds = new ArrayList<String>(commonKeys);
        commonKeys.retainAll( tempSet );
           System.out.println(commonKeys);
             for (Object key : commonKeys)
           {
                  ArrayList<String>  value = (ArrayList<String>) AMap.get(key);
                   ruleGroupIds.addAll(value);
             }
             System.out.println("result " + ruleGroupIds);
           return ruleGroupIds;
      }
      public static void main(String args[])
      {
            ArrayList<String> compareList = new ArrayList<String>();
            compareList.add("A");      compareList.add("B");      compareList.add("D");
            ArrayList<String> superList = new ArrayList<String>();
            ArrayList<String> ruleGroupIds = new ArrayList<String>();
            ArrayList<String> ruleGroupIdsss = new ArrayList<String>();
            ruleGroupIdsss.add("1234");ruleGroupIdsss.add("12345");
            superList.add("A");superList.add("B");superList.add("C");superList.add("E");//superList.add("D");

            HashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>();
            hm.put("B",ruleGroupIdsss);hm.put("D",ruleGroupIdsss);hm.put("A",ruleGroupIdsss);hm.put("E",ruleGroupIdsss);
            hm.put("C",ruleGroupIdsss);
            
            test5 t = new test5();
            t.getData(hm, compareList);
      }
}


ITS FAILING.The result is
result [C, B, A, E, D, 1234, 12345, 1234, 12345, 1234, 12345] which is wrong.
It sud pull corresponding arraylist instead of keeping all keys and values..
can u check..
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24753369
Haven't really got time to look in detail but i would put more debug printouts in to see what you're starting and ending with
0
 

Author Comment

by:satyabrata25
ID: 24754040
i modified the logic its working...no need to proceed...
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Suggested Courses
Course of the Month14 days, 15 hours left to enroll

771 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