我有List<Map<String, Object>>
,如下所示。
[{a=1, b=Kanji, c=null, d=Alphabet}]
我已经知道“c”键的值有时为null
,所以如果是这种情况,我想从List<Map<String, Object>>
删除“c”键。
所以我想要结果,如果“c”键的值为“null”或空
[{a=1, b=Kanji, d=Alphabet}]
所以我试过
List<Map<String, Object>> list = ....(procedure to get the [{a=1, b=Kanji, c=null, d=Alphabet}] from sql)
for (Map<String, Object> child : list) {
Object value = child.get("c");
if(value == null || value == "") {
list.remove("c");
}
}
但是List仍然显示
[{a=1, b=Kanji, c=null, d=Alphabet}]
如何从列表中删除值“c”?
我希望得到List<Map<String, Object>>
的结果。
答案 0 :(得分:3)
您需要从子地图(child.remove("c")
)而不是List
中删除该元素。
答案 1 :(得分:0)
上面的代码尝试从列表中删除密钥,但它应该尝试从地图中删除密钥。
答案 2 :(得分:0)
更改需要..
- 从
map
移除,而不是从list
移除。- 对
醇>key
进行迭代,找到值为null
的地图元素
试试这个..
for(Map<String, Object> child : List){
for(String key : child.keySet()){
if(child.get(key)==null)
child.remove(key);
}
}
答案 3 :(得分:0)
import UIKit
class ProblemPresentation: UIViewController, UITextFieldDelegate {
@IBOutlet weak var problemImage: UIImageView!
var selectedImage: String?
let sampleTextField = UITextField(frame: CGRect(x: 100, y: 545, width: 230, height: 40))
let solution = ["600", "1", "0.5"]
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
if let notNil = problemImage {
notNil.image = UIImage(named: selectedImage ?? "Ncorrect")
notNil.layer.masksToBounds = true
notNil.layer.borderWidth = 1.5
notNil.layer.borderColor = UIColor.black.cgColor
}