如何在Java中动态创建变量?
我需要创建新变量如何在Java中动态创建变量?,java,string,Java,String,我需要创建新变量字符串,以便 String person1 = "female"; String person2 = "female"; ........ ........ String person60 = "male"; ........ String person100 = "male"; 这就是我试过的 for (int i = 1; i <101; i++) { if (i<60) { String person+i = "female"; } els
字符串
,以便
String person1 = "female";
String person2 = "female";
........
........
String person60 = "male";
........
String person100 = "male";
这就是我试过的
for (int i = 1; i <101; i++) {
if (i<60) {
String person+i = "female";
}
else {
String person+i = "male";
}
}
对于(int i=1;i您将需要一个具有一定大小的字符串[]
,可以动态确定。
然后,为数组元素赋值
String[] anArray;
// some magic logic
anArray = new String[100];
for(int i = 0; i < anArray.length; i++){
// more magic logic to initialize the elements
}
String[]数组;
//一些神奇的逻辑
anArray=新字符串[100];
for(int i=0;i
另一个选项是向量
或数组列表
,如下所示:
List<String> anExpandableArray = new ArrayList<String>();
// add String data
anExpandaleArray.add("Foo");
anExpandaleArray.add("Bar");
List anExpandableArray=new ArrayList();
//添加字符串数据
添加(“Foo”);
添加(“条”);
只需使用这样的数组即可
String[] people = new String[numofelements];
并初始化数组
for(int i = 0; i < people.length; i++){
people[i] = "whatever";
}
for(int i=0;i
很接近。如果将每个人的性别存储在一个数组中,您可以这样做:
String[] persons = new String[100]
for (int i = 0; i < persons.length; i++) {
if (i<60) {
persons[i] = "female";
}
else {
persons[i] = "male";
}
}
String[]个人=新字符串[100]
for(int i=0;i映射,其中键是您的“变量名”,值是该变量的值。String[]persons=new String[101];
String[] persons = new String[101];
for (int i = 0; i < 101; i++) {
if (i < 60) {
String persons[i] = "female";
} else {
String persons[i] = "male";
}
}
对于(int i=0;i<101;i++){
如果(i<60){
字符串persons[i]=“女性”;
}否则{
字符串persons[i]=“男性”;
}
}
当您发现自己想要创建相同类型的“更多变量”时,通常需要某种类型的列表。Java中有两种基本类型的“列表”:数组和列表
数组:
String[] people = new String[10]; // That gives you room for 10
people[0] = "female";
people[1] = "male";
// ...
int n = 1;
System.out.println("Person " + n + " is " + people[n]);
列表
:
List<String> people = new LinkedList<String>(); // Expandable
people.add("female");
people.add("male");
// ...
int n = 1;
System.out.println("Person " + n + " is " + people.get(n));
// Note difference -------------------------------^^^^^^^
List people=new LinkedList();//可展开
添加(“女性”);
添加(“男性”);
// ...
int n=1;
System.out.println(“Person”+n+“是”+people.get(n));
//注差-------------------------------^^^^^^^
当你事先知道会有多少时,使用数组是很好的。当你不知道会有多少时,使用列表是很好的
列表说明:有一个接口,List
,然后有多个不同的具体实现,具有不同的运行时性能特征(LinkedList
,ArrayList
,等等)。这些在中。映射允许您将任何键与任何值关联。在这种情况下,键是变量的名称,值是值
Map<String, String> details = new HashMap<>();
for (int i = 1; i <101; i++) {
if (i<60) {
details.put("person" + i, "female");
}
else {
details.put("person" + i, "male");
}
}
Map details=newhashmap();
对于(int i=1;我使用数组。你不能动态命名变量。@SotiriosDelimanolis…很容易。如果每次在这里问这类问题时我都有一美元,我就是一个有钱人。顺便说一句,我要么使用布尔值,男性,要么使用枚举Sex{male,FEMALE}
@HovercraftFullOfEels如果您发现一个问题与此问题足够接近,则将此标记为重复问题(或结束投票)。OK@luiscubal:以下是众多重复问题中的一个:。投票将此问题作为重复问题结束。