Java 在单独的位置定义静态数据以重用
我有一个字符串数据列表,这些数据在我的程序中的任何操作期间都不会更改。但我需要使用key在多个地方访问这些数据。Java 在单独的位置定义静态数据以重用,java,enums,Java,Enums,我有一个字符串数据列表,这些数据在我的程序中的任何操作期间都不会更改。但我需要使用key在多个地方访问这些数据。 例如:(1,安)(2,亚历克斯)(3,安卓) 是否有任何方法将这些数据存储在单独的类中。我可以使用java枚举进行此操作。谢谢这确实是使用Map的一个很好的候选者。您可以将数字用作键,将字符串用作值 Map Map=newhashmap(); 您可以执行以下操作: import java.util.HashMap; public class Main { static H
例如:(1,安)(2,亚历克斯)(3,安卓)
是否有任何方法将这些数据存储在单独的类中。我可以使用java枚举进行此操作。谢谢这确实是使用Map的一个很好的候选者。您可以将数字用作键,将字符串用作值
Map Map=newhashmap();
您可以执行以下操作:
import java.util.HashMap;
public class Main {
static HashMap<Integer,String>data = new HashMap<>();
public static void main(String[] args) {
// write your code here
data.put(data.size(),"ALEX"); // if you want 1-based indexing,
data.put(data.size(),"ANDROW"); // then use data.size()+1
data.put(data.size(),"ANN"); // instead of data.size()
for (int i = 0; i<data.size(); i++){
System.out.println(i+" : "+data.get(i)); // use i+1 if 1-based indexing
}
}
}
import java.util.HashMap;
公共班机{
静态HashMapdata=newHashMap();
公共静态void main(字符串[]args){
//在这里编写代码
data.put(data.size(),“ALEX”);//如果需要基于1的索引,
data.put(data.size(),“ANDROW”);//然后使用data.size()+1
data.put(data.size(),“ANN”);//而不是data.size()
for(inti=0;iMap
是一个选项,如果key也是常量,您可以定义如下字符串变量
public static final string ONE = "ANN";
public static final string TWO = "ALEX";
使用enum可以实现如下功能:
public enum Name {
ONE {
@Override
public String getName() {
return "ANN";
}
},
TWO {
@Override
public String getName() {
return "ALEX";
}
},
THREE {
@Override
public String getName() {
return "ANDROW";
}
};
public abstract String getName();
}
然后您可以获得以下名称:
System.out.println(Name.ONE.getName());
使用枚举定义静态映射的另一种方法:
public enum Names {
ONE("ANN"),
TWO("ALEX"),
THREE("ANDREW");
private final String name;
private Names(String name){
this.name=name;
}
public String getName() {
return this.name;
}
}
这只适用于真实的静态值(对值的更改意味着代码更改),但您也可以轻松定义多个属性。也许是静态映射?HashMap有什么问题?
?IMHO,更好的样式是为该枚举定义构造函数-public Name(String Name){This.Name=Name;};然后您可以简单地定义一个(“ANN”)、两个(“ALEX”),如果您这样实现,您将如何获得输出?System.out.println(Name.ONE);
?您需要在enum类中定义一个(静态最终字段)…我将给出一个samplename作为enum中的默认字段。ONE.Name()
返回“ONE”所以在枚举中使用不同的变量nmae。
public enum Names {
ONE("ANN"),
TWO("ALEX"),
THREE("ANDREW");
private final String name;
private Names(String name){
this.name=name;
}
public String getName() {
return this.name;
}
}