将Java Map键集值与Java对象列表的String值匹配

时间:2019-06-17 07:21:54

标签: java list collections compare java-stream

我有一个Java对象列表,每个对象都包含一个String值(代码)。我也有一个Java Map。我想检查Map键中的所有元素是否都包含在String值列表中。

Model类:

public class Obj {

private String code;
private String name;
private String uom;

public Obj(String code, String name, String uom) {
    this.code = code;
    this.name = name;
    this.uom = uom;
  }

} 

实现:

private static final Obj weight = new Obj("weight", "Weight", "Kg");
private static final Obj height = new Obj("height", "Height", "cm");
public static final List<Obj> objMasters = List.of(weight, height);


Set<String> keySet = map.keySet(); // returns the keyset values from the Map

boolean match =objMasters.stream()
  .anyMatch(objMaster -> objMaster.getCode().matches(keySet.toString()));

但是使用此实现,我总是将false作为匹配项的值。这里出了什么问题?

2 个答案:

答案 0 :(得分:0)

根据我现在对您的问题的了解,尝试执行此操作。

$('a.nav-link').on('shown.bs.tab', function(e) {
  var href = $(this).attr('href');
  $('html, body').animate({
    scrollTop: $(href).offset().top
  }, 'slow');
});

答案 1 :(得分:0)

0,当您使用collection或map时,请重写equals和hashCode方法 / n1,您可以深入研究源代码,例如get(),contain()和其他方法 / n2,那么您将不明白为什么