我想在第2位插入一个新元素并将其他元素向下移动一步?可能吗

时间:2016-07-06 04:57:22

标签: java dictionary collections hashmap jmap

public class Data
 {
    public static void main(String[] args) {
      Map<String, String> data = new LinkedHashMap<String, String>();
      data.put("1", "A");
      data.put("2", "B");
      data.put("3", "C");
      data.put("4", "D");
    }
 }

我想在第2位插入一个新元素并将其他元素向下移动一步?  是否有可能

  "1", "A"
  "2", "B"   
  "3", "C"   
  "4", "D"

之后

  "1", "A"
  "2", "New Element"
  "3", "B"  
  "4", "C"   
  "5", "D"

2 个答案:

答案 0 :(得分:1)

您使用错误的数据结构满足您的需求。我猜你的地图中的关键字只是索引,因此不需要。你应该使用的是一个ArrayList。在那里你可以add(int index,Object o)你所说的你需要的元素。

答案 1 :(得分:0)

我不确定你想在这里实现什么。但是这段代码应该这样做。

String temp1 = "New Element";
String temp2 = "";
Set<String> keys = data.keySet();
for(String key:keys){
    if(key.compareTo("2")>=0){
        temp2 = data.get(key);
        data.put(key,temp1);
        temp1 = temp2;
    }
}
data.put(keys.size()+1,temp1);

假设您输入的密钥将按升序排列