首页 > Java > 有没有测试是否包含的好方法?String sVALUESs

有没有测试是否包含的好方法?String sVALUESs

上一篇 下一篇

我有一个这样的值:String[]

public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};

给定 ,有没有测试是否包含的好方法?String sVALUESs

分割线

网友回答:

Java SE 9 的简明更新

引用数组不好。对于这种情况,我们追求一组。从Java SE 9开始,我们有.Set.of

private static final Set<String> VALUES = Set.of(
    "AB","BC","CD","AE"
);

“给定字符串 s,有没有测试值是否包含 s 的好方法?”

VALUES.contains(s)

O(1)。

正确的类型不可变O(1)简洁。美丽。*

原始答案详细信息

只是为了清除代码开始。我们已经(更正):

public static final String[] VALUES = new String[] {"AB","BC","CD","AE"};

这是一个可变的静态,FindBugs会告诉你非常顽皮。不要修改静态,也不允许其他代码这样做。在绝对最小值上,该字段应该是私有的:

private static final String[] VALUES = new String[] {"AB","BC","CD","AE"};

(请注意,您实际上可以删除该位。new String[];

引用数组仍然很糟糕,我们想要一组:

private static final Set<String> VALUES = new HashSet<String>(Arrays.asList(
     new String[] {"AB","BC","CD","AE"}
));

(偏执狂的人,比如我自己,如果把它包裹起来,可能会感到更自在——然后甚至可以公开。Collections.unmodifiableSet

(*为了更多地了解品牌,可以预见的是,集合 API 仍然缺少不可变的集合类型,并且语法仍然太冗长,以满足我的口味。

分割线

网友回答:

Arrays.asList(yourArray).contains(yourValue)

警告:这不适用于基元数组(请参阅注释)。


从java-8开始,您现在可以使用Streams。

String[] values = {"AB","BC","CD","AE"};
boolean contains = Arrays.stream(values).anyMatch("s"::equals);

要检查 的数组是否包含值,请使用 或 分别。intdoublelongIntStreamDoubleStreamLongStream

int[] a = {1,2,3,4};
boolean contains = IntStream.of(a).anyMatch(x -> x == 4);

分割线

网友回答:

您可以从Apache Commons Lang使用ArrayUtils.contains

public static boolean contains(Object[] array, Object objectToFind)

请注意,如果传递的数组为 。falsenull

还有一些方法可用于各种原始数组。

例:

String[] fieldsToInclude = { "id", "name", "location" };

if ( ArrayUtils.contains( fieldsToInclude, "id" ) ) {
    // Do some stuff.
}

模板简介:该模板名称为【有没有测试是否包含的好方法?String sVALUESs】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 154次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-14
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 微信公众平台 单页式简历模板 自适应 企业网站 微信图片 微信文章 微信素材 响应式 微信模板
您可能会喜欢的其他模板