如何在JAVA中动态制作数组?

时间:2011-11-18 06:16:10

标签: java arrays

我的问题很简单我想创建一个数组并用一些字符串项填充它。以下是简单代码,其中包含两个类一个主要方法(非常基本的程序)。

public class CompanyDetails {
public static void main (String[] args){

    CompanyInput apple = new CoInput();
    apple.coDetailsSummary("Apple","USA", "NA");
    apple.computeNoOfJoinees();

    CompanyInput htc = new CoInput();
    htc.coDetailsSummary("HTC", "Thailand", "NA");
    htc.computeNoOfJoinees();

}

}

public class CompanyInput {
float noOfJoinees;
String companyName;
String address;
String phoneNumber;
int randomInt,randomInt1;
int noOfEmployees;
Array gh;

void coDetailsSummary(String companyName, String address, String phoneNumber) {
    // TODO Auto-generated method stub

    System.out.println("Company Name                              : "+companyName); 
    System.out.println("Address                                   : "+address); 
    System.out.println("Contact Information                       : "+phoneNumber); 

}
void computeNoOfJoinees(){
    float m1,m2, m3;
    Random randomGenerator = new Random();
    for (int idx = 1; idx <= 10; ++idx)
        randomInt = randomGenerator.nextInt(30);
        randomInt1 = randomGenerator.nextInt(20);

        m1 = randomInt;
        m2 = randomInt1;
    m3 = m1+m2/100;
    System.out.print("The number of joinees joining every month : "+m3);
    System.out.println("\n");
}

}

我想创建一个名为“companyName”的数组,并使用将作为输出提供的所有值填充它。

例如

Company Name                              : Apple
Address                                   : USA
Contact Information                       : NA
The number of joinees joining every month : 13.0

运行程序时,必须自动将所有这些值插入到数组中。结果应如下所示

Apple[] = {Apple,USA,NA,13.0}

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:1)

更改您的

float noOfJoinees;
String companyName;
String address;
String phoneNumber;
int randomInt,randomInt1;
int noOfEmployees;
Array gh;

void coDetailsSummary(String companyName, String address, String phoneNumber) {
    // TODO Auto-generated method stub

    System.out.println("Company Name                              : "+companyName); 
    System.out.println("Address                                   : "+address); 
    System.out.println("Contact Information                       : "+phoneNumber); 

}

进入

void coDetailsSummary(String argCompanyName, String argAddress, String argPhoneNumber) {
    // TODO Auto-generated method stub
this.companyName = argCompanyName

//类似于其他参数。

}

然后将其添加到ArrayList并循环遍历它们并打印出来。

答案 1 :(得分:1)

使用ArrayList来动态添加元素 在您的情况下,它将是CompanyInput对象的ArrayList。

ArrayList<CompanyInput>companyName = new ArrayList<CompanyInput>();
companyName.add(new CompanyInput("Apple","USA","NA",13.0));
companyName.add(new CompanyInput("MSoft","USA","NA",15.0));

等...

希望有所帮助!

答案 2 :(得分:1)

在main方法中,创建一个CompanyInput类型的ArrayList,如下所示:     List listOfCompanies = new ArrayList();

现在,逐个将CompanyInput的所有实例添加到此列表中。对于例如 添加&#34; apple&#34;到列表:     listOfCompanies.add(苹果);

还将Object类的toString方法重写到CompanyInput类中。要知道如何覆盖toString,可以参考:http://www.javabeat.net/tips/12-overriding-the-tostring-method-in-object-cl.html

现在,只需打印列表就像打印任何变量一样: -     的System.out.println(listOfCompanies);

对于添加到列表中的所有实例,将覆盖toString方法的输出打印到控制台。

答案 3 :(得分:0)

如果你的java版本支持varargs,那么你可以这样做:

private static String[] createDynamicStringArray(String... items){
  return items;
}

用法:

String[] items = createDynamicStringArray("item1", "item2", "item3");

但我建议重新考虑你的设计。

答案 4 :(得分:0)

您应该使用List。数组不支持此功能。

请谷歌的数据列表优于Java的数组