我需要更改包含哈希映射的数组列表中所选索引的键和值。我知道要更换钥匙,您需要先取下要更换的钥匙,然后放一把新钥匙。但这并没有保存删除的键和值的位置。因此,我想遍历我的哈希映射数组列表,并在一个新的哈希映射中一个一个地创建它们,我可以在其中为我选择的索引添加一个 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 );
添加回答
举报
0/150
提交
取消