如何在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:以下是众多重复问题中的一个:。投票将此问题作为重复问题结束。