Java 如何在haspmap中添加、删除和保存值

Java 如何在haspmap中添加、删除和保存值,java,object,methods,hashmap,Java,Object,Methods,Hashmap,我试着写3种方法,比如说 1。getAddedTasks() 2。getRemovedTasks() 3。saveTasks() 完成以下任务 有两个hashmap 1.是在屏幕上和2。实际值 屏幕:{},实际:{} 步骤1:我必须使用添加按钮添加3个任务,1、2、3在屏幕上,实际任务将为空 像这样 onscreen: {1,2,3}, actual: {} onscreen: {1,2,3}, actual: {1,2,3} onscreen: {1,2,3,4}, actual: {1,

我试着写3种方法,比如说
1。getAddedTasks()

2。getRemovedTasks()

3。saveTasks()

完成以下任务 有两个hashmap
1.是在屏幕上和2。实际值
屏幕:{
},
实际:{}

步骤1:我必须使用添加按钮添加3个任务,1、2、3在屏幕上,实际任务将为空
像这样

onscreen: {1,2,3}, actual: {}
onscreen: {1,2,3}, actual: {1,2,3}
onscreen: {1,2,3,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,4}
第二步:当点击保存时,点击保存->这应该发生 getRemovedTasks()=“”,getAddedTasks()=“1,2,3” 然后hashmap状态将如下所示

onscreen: {1,2,3}, actual: {}
onscreen: {1,2,3}, actual: {1,2,3}
onscreen: {1,2,3,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,4}
第3步:我再次希望在屏幕上添加第四个值
像这样

onscreen: {1,2,3}, actual: {}
onscreen: {1,2,3}, actual: {1,2,3}
onscreen: {1,2,3,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,4}
同时我要删除第三个值 像这样

onscreen: {1,2,3}, actual: {}
onscreen: {1,2,3}, actual: {1,2,3}
onscreen: {1,2,3,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,4}
步骤4:单击保存->getRemovedTasks()=“3”,getAddedTasks()=“4” 最后,输出应该是这样的

onscreen: {1,2,3}, actual: {}
onscreen: {1,2,3}, actual: {1,2,3}
onscreen: {1,2,3,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,3}
onscreen: {1,2,4}, actual: {1,2,4}
我尝试了以下代码

import java.util.*;

public class  getList
{   

     private  static HashMap<Integer, Object[]> dataz = new HashMap<Integer,Object[]>();
     private static  HashMap<Integer, Object[]> screen_dataz = new HashMap<Integer,Object[]>();
     public final static Object[][] longValues = {{"10", "kstc-proc", "10.10.","5","O"},{"11", "proc-lvk1", "12.1.2.","4","O"},{"13", "trng-lvk1", "4.6.1.","3","O"}};
     public static String sl, pid, tid, mval,status;    

     public  static String findRowsRemoved()
     {
            ArrayList<String> datazList = new ArrayList<String>();
            for(int index: dataz.keySet())
            {
                Object[] data = dataz.get(index);
                datazList.add(data[1]+":"+data[2]);
            }

            for (int index: screen_dataz.keySet())
            {
                Object[] data = screen_dataz.get(index);
                String check = data[1]+":"+data[2];
                if (datazList.contains(check))
                    datazList.remove(check);
            }

            HashMap<String,String> p = new HashMap<String,String>();
            for(String d: datazList)
            {
                String pId = d.split(":")[0];
                String tId = d.split(":")[1];
                if (p.containsKey(pId))
                    p.put(pId, p.get(pId)+","+tId);
                else
                    p.put(pId, tId);
            }

            String fullStr = "";
            for(String pId: p.keySet())
            {
                fullStr += pId + ":" + p.get(pId) + "|";
            }

            fullStr = fullStr.substring(0, fullStr.length()-1);

            return fullStr;
     }




     public static void  addTask(HashMap<Integer,Object[]> d, Object[] data)
     {
        d.put(screen_dataz.size(), data);
     }

     public static void saveTask()
     {   
       System.out.println("Save Task"); 
       System.out.println("-------------");
       dataz.putAll(screen_dataz);

         for (int i=0; i<longValues.length; i++)        
        {
            for (int j=0; j<longValues.length; j++)
            {        
                sl = (String) longValues[i][0];
                pid = (String) longValues[i][1];
                tid = (String) longValues[i][2];
                mval = (String) longValues[i][3];
                status = (String) longValues[i][4];
            }         
        }            

    }  


     public static void main(String args[])
     {
         //addTask();  
         Object[]  obj = new Object[5];
         String[] strArray = new String[]{"1","kstc-proc","1.1","5","O"};
         String[] strArray1 = new String[]{"2","proc-lvk1","1.2.","6","O"};
         String[] strArray2 = new String[]{"3","proc-lvk1","1.3.","7","O"};
         addTask(screen_dataz, strArray);
         addTask(screen_dataz, strArray1);
         addTask(screen_dataz, strArray2);

         Object[]  obj1= new Object[5];
         String[] strArray3 = new String[]{"4","kstc-proc","1.4","8","O"};
         addTask(dataz, strArray2);
         addTask(dataz, strArray3);

         String str = findRowsRemoved();
         System.out.println("RowsRemoved: " + str);
         str = findRowsAdded();
         System.out.println("RowsAdded: " + str);
         //saveTask();
     }
 }    
import java.util.*;
公共类getList
{   
私有静态HashMap dataz=newhashmap();
私有静态HashMap screen_dataz=newhashmap();
公共最终静态对象[][]longValues={{“10”、“kstc-proc”、“10.10.”、“5”、“O”}、{“11”、“proc-lvk1”、“12.1.2.”、“4”、“O”}、{“13”、“trng-lvk1”、“4.6.1.”、“3”、“O”};
公共静态字符串sl、pid、tid、mval、状态;
公共静态字符串findRowsRemoved()
{
ArrayList datazList=新的ArrayList();
for(int索引:dataz.keySet())
{
Object[]data=dataz.get(索引);
add(数据[1]+“:”+数据[2]);
}
for(int索引:screen_dataz.keySet())
{
Object[]data=screen_dataz.get(索引);
字符串检查=数据[1]+:“+数据[2];
if(datazList.contains(检查))
datazList.remove(检查);
}
HashMap p=新的HashMap();
for(字符串d:datazList)
{
字符串pId=d.split(“:”[0];
字符串tId=d.split(“:”[1];
如果(p.containsKey(pId))
p、 put(pId,p.get(pId)+“,”+tId);
其他的
p、 put(pId,tId);
}
字符串fullStr=“”;
对于(字符串pId:p.keySet())
{
fullStr+=pId+“:”+p.get(pId)+“|”;
}
fullStr=fullStr.substring(0,fullStr.length()-1);
返回fullStr;
}
公共静态void addTask(HashMap d,对象[]数据)
{
d、 put(screen_dataz.size(),data);
}
公共静态void saveTask()
{   
System.out.println(“保存任务”);
System.out.println(“--------------”;
dataz.putAll(屏幕_dataz);
对于(int i=0;i
public类多值hashmap{
私有映射Map=newhashmap();
公共空添加(整数id,浮点值){
如果(!map.containsKey(id)){
put(id,newarraylist());
}
map.get(id).add(value);
}
公共无效删除(整数id、浮点值){
如果(!map.containsKey(id)){
返回;
}
map.get(id).remove(value);
}
}

通过这种方式,您可以使用这些方法轻松地添加和删除项。

问题是什么?在这里,您将了解如何在hashmap中添加和删除项。请参考此内容。请指定错误位置,在那里您会遇到一些错误。这里,我为您提供了从hashmap中执行ad/删除元素的示例方法。这样,您就可以在代码中应用它。