首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 字符串數組賦值誤區:使用 Map 替代平行數組實現鍵值映射

     編輯:程式設計綜合問答

錯誤嘗試

String[] getContainsValue = { strHi, strHello, strThere };
for (int x = 0; x < getContainsValue.length; x++) {
    getContainsValue[x] = containsValue[x]; // 只修改數組元素,不影響 strHi 等變量
}

Java 為**值傳遞**,數組存儲的是字符串引用的副本,修改數組元素**不會**回寫到原變量。

正確方案:使用 Map<String, String>

Map map = new HashMap<>();
map.put("strHi", "hi");
map.put("strHello", "hello");
map.put("strThere", "there");

String value = map.get("strHello"); // 獲取 "hello"
map.put("strHello", "new value");   // 修改映射值

優勢

  • **鍵值直接關聯**,無需平行數組、下標對齊。
  • 動態增刪、查找 O(1)。
  • 可直接序列化為 JSON(Gson/Jackson)。

若必須用數組

僅能「讀取」數組元素賦值給變量:

strHi = containsValue[0];
strHello = containsValue[1];
strThere = containsValue[2];

但無法實現「修改數組自動同步變量」的雙向綁定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved