java中list強轉為map類型


起因:讀取數據庫文件的測試用例,測試用例需要存放到一個map中,方便下次調用,  

讀取的內容返回的內容存放在一個list中,並且數據內容是key=value的形式,最開始使用切片方式,做了很多無用功,后面老大指正使用索引方式可以強轉為map,具體內容如下:

讀取出來的數據格式為:

[{leader=test, item=重復注冊失敗, code=null, creatertime=2017-07-10 10:28:19, manual_test_time=1, module=com.xx.xx.RW_register, project_code=xx-pc, precondition=在注冊頁面, testname=register_repetition, funmodule=注冊, teststep=1.郵箱欄輸入無效郵箱注冊如:xxcv@123
2.點擊注冊按鈕,注冊失敗,提示, exelevel=P1, test_describe=郵箱己注冊過,注冊失敗, id=8aa184fb5d204068015d2a5376173c39, verification_content=1.注冊提示“The email address is already in use”, updatetime=2017-07-10 10:28:19, remarks=null

第一種:使用索引的,進行list的強轉,代碼如下:

public static void  listcase2(){
        Map<String, String > map = new HashMap<String, String>();  
         String sql="select  *  from "+DBhandle.tabel+" where  project_code='rosewholesale-pc' ";
         Log.logInfo(sql);
         DBhandle handle=new DBhandle();    
        
         List  querylist2=handle.query(sql); //讀取數據庫文件后放入到一個list中
         Map<String, String> m = new HashMap<String, String>();//用於存放帶轉換后的map文件
        for(int i=0;i<querylist2.size();i++){
             m=(Map<String, String>) querylist2.get(i); //通過索引方式進行轉換類型的強轉
             
             Set keySet = m.keySet(); // 讀取map中的文件
             Iterator<String> it = keySet.iterator();  
             while(it.hasNext()){  //挨個遍歷
                 Object  k = it.next(); // key  
                 Object v = m.get(k);  //value      
                 System.out.println("K:" + k + " V:" + v);  
             } 
            
        }

 

效果如下:

 

第二種方法,使用split進行分割

可以從得去的數據來看,每一個條數據,最開始使用,使用的逗號和等號方式組成一個字段,按照以上的內容我自己進行分割

代碼如下:

public static void  listcase(){
        Map<String, Object> map = new HashMap<String, Object>();  
         String sql="select  *  from "+DBhandle.tabel+" where  project_code='rosewholesale-pc' ";
         Log.logInfo(sql);
         DBhandle handle=new DBhandle();    
         List  querylist2=handle.query(sql);
         Map<String, String> m = new HashMap<String, String>();
         String[] getcase = null;
         String[] cases = null;
         String[] keys=null;         
          getcase=querylist2.toString().split("},");//取出的數據很多,先進行使用逗號進行分割,分割
         for (int i = 0; i < getcase.length; i++) {
            Log.logInfo("使用和大括號 和逗號分割的測試用例:"+getcase[i]);
              cases = getcase[i].replace("[{", "").replace("{", "").split(",");
              Log.logInfo("在使用逗號進行分割:"+getcase[i]);
              for (String s: cases) {
                  String[] keyText = s.split("="); // 轉換key與value的數組  
                  Log.logInfo("在使用等號進行分割:"+getcase[i]);
                     if (keyText.length < 1) {  
                         continue;  
                     }  
                     String key = keyText[0]; // key  
                     String value = keyText[1]; // value
                 
                     map.put(key, value);  
                 }  
              
              Set keySet = map.keySet(); // key的set集合  
              Iterator it = keySet.iterator();  
              while(it.hasNext()){  
                  Object k = it.next(); // key  
                  Object v = map.get(k);  //value       
                  System.out.println("K:" + k + " V:" + v);  
              }  
              }
              
        }

效果也是一樣,但是有一點,如果在value中有一個帶有逗號的,那就可能會切錯

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM