为了账号安全,请及时绑定邮箱和手机立即绑定

我如何获得 arraylist 中的 hashmap 的克隆

我如何获得 arraylist 中的 hashmap 的克隆

红颜莎娜 2023-03-31 17:09:55
我需要更改包含哈希映射的数组列表中所选索引的键和值。我知道要更换钥匙,您需要先取下要更换的钥匙,然后放一把新钥匙。但这并没有保存删除的键和值的位置。因此,我想遍历我的哈希映射数组列表,并在一个新的哈希映射中一个一个地创建它们,我可以在其中为我选择的索引添加一个 if 命令,假设 1,1 在那里它将改变我的索引位置想要更改并复制那些不被编辑的。我不知道如何以及如何复制的正确方法。请注意,我只是 Java 的初学者,正在努力学习。正确执行此操作的方法是什么?我只是尝试手动更新键和值,但它改变了它应该在的位置/索引。import java.util.*;public class sof {    static ArrayList<LinkedHashMap<String, String>> table = new ArrayList<LinkedHashMap<String, String>>(); //2d ArrayList    public static void main(String args[]) {        setMatrix();        print();        System.out.println();        editValue2();    }    static void print(){        for(int x = 0; x < table.size();x++){            System.out.println(table.get(x));        }    }    static String setChar(){        String result = "";        Random random = new Random();        for(int x = 1; x < 4 ; x++){        result += (char)(32 + random.nextInt(95));        }        return result;    }    static void setRow(int x){        LinkedHashMap<String, String> arr = new LinkedHashMap<>();        for(int z=1; z <= x; z++){            String ran = setChar();            String rann = setChar();            arr.put(ran,rann);        }        table.add(arr);             }    static void Setmatrix(){        Scanner row = new Scanner(System.in);        System.out.println("Enter Row: ");        int zz = row.nextInt();        Scanner column = new Scanner(System.in);        System.out.println("Enter Column: ");        int z = column.nextInt();        for(int x = 0; x <= zz-1; x++){            setRow(z);        }    }我希望我可以编辑任何给定表中任何索引的键和值。键也必须是唯一的。
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您可以获取和设置给定索引的 ArrayList 值,并替换保留 LinkedHashMap 中地图索引的键值,您必须使用新值克隆它。在这种情况下,您走在正确的轨道上。


editValue2 方法的编辑代码


int col = 0;


LinkedHashMap<String, String> copy = new LinkedHashMap<>();

// you can get the map from arrayList index

LinkedHashMap<String, String> map = table.get( ind1 ); // assuming ind1 is the arrayList index

for ( Map.Entry<String, String> entry : map.entrySet() )

{

    // assuming ind2 is the map index

    if ( ind2 == col )

    {

        copy.put( key, value );

    }

    else

    {

        copy.put( entry.getKey(), entry.getValue() );

    }

    col++;

}

table.set( ind1, copy ); 


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 84 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信