一次添加多个字段到Java 5 HashSet? [英] Add multiple fields to Java 5 HashSet at once?

查看:307
本文介绍了一次添加多个字段到Java 5 HashSet?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有更好的方法来做到这一点所以我不必在那里有50个.add()?像逗号分隔的列表或类似的东西(如JavaScript数组)。

Is there a better way to do this so I don't have to have 50 ".add()"s in there? Like a comma separated list or something (like JavaScript arrays).

private static final Set<String> validStates = new HashSet<String>();

validStates.add("AL");
validStates.add("AK");
validStates.add("AZ");
validStates.add("AR");
validStates.add("CA");
validStates.add("CO");
validStates.add("CT");
validStates.add("DE");
validStates.add("DC");
validStates.add("FL");
validStates.add("GA");
validStates.add("HI");
validStates.add("ID");
validStates.add("IL");
validStates.add("IN");
validStates.add("IA");
validStates.add("KS");
validStates.add("KY");
validStates.add("LA");
validStates.add("ME");
validStates.add("MD");
validStates.add("MA");
validStates.add("MI");
validStates.add("MN");
validStates.add("MS");
validStates.add("MO");
validStates.add("MT");
validStates.add("NE");
validStates.add("NV");
validStates.add("NH");
validStates.add("NJ");
validStates.add("NM");
validStates.add("NY");
validStates.add("NC");
validStates.add("ND");
validStates.add("OH");
validStates.add("OK");
validStates.add("OR");
validStates.add("PA");
validStates.add("RI");
validStates.add("SC");
validStates.add("SD");
validStates.add("TN");
validStates.add("TX");
validStates.add("UT");
validStates.add("VT");
validStates.add("VA");
validStates.add("WA");
validStates.add("WV");
validStates.add("WI");
validStates.add("WY");

类似于:

validStates.add("AL", "AK", "...");


推荐答案

HashSet 构造函数采用集合 数组#asList() 将参数作为 varargs 并返回 列表 (这是 Collection )。所以,你可以这样做:

The HashSet has a constructor taking a Collection. The Arrays#asList() takes arguments as varargs and returns a List (which is a Collection). So, you could do it as follows:

validStates = new HashSet<String>(Arrays.asList("AL", "AK", ".."));

将它们放在某些属性文件或数据库中更有意义或者两行代码,这样你就不需要用Java对它们进行硬编码。

It makes however more sense to have them in some properties file or in a DB which you load by one or two lines of code so that you don't need to hardcode them all in Java.

如果你使用的是Java 8+,你可以使用 流#()

If you were on Java 8+, you could just use Stream#of().

validStates = Stream.of("AK", "AL", "..").collect(Collectors.toSet());

这篇关于一次添加多个字段到Java 5 HashSet?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆