【问题标题】:How to use ArrayList properly?如何正确使用 ArrayList?
【发布时间】:2013-04-30 18:45:34
【问题描述】:

好的,所以使用 ArrayLists 对我来说是第一次,我会先向我的老师或朋友寻求帮助……但它是一门在线课程,所以提出问题需要很长时间,到目前为止,我是唯一一个参加这门课程的学生在我的整个学校(这是一所很小的学校。)

无论如何,这太简单了,这很荒谬(我想对你来说)但是它摆脱了带下划线的东西......所以我猜我错过了一个关键组件......

public class EmployeeProjectView extends FrameView {

例如采取这一行...这个程序的开头,company 带有红色下划线(我正在使用 netbeans),我不知道为什么,它可以像 String 一样正常工作,所以我的问题是。 ...是否总是必须将其定义为String

/** Define the ArrayList */
ArrayList<company> employee = new ArrayList<company>();


public EmployeeProjectView(SingleFrameApplication app) {
}// </editor-fold>                        

这(下面是“addButton”)是您在数组中存储信息的位置。

private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { 

String c;
String ID, firstName, lastName, salary, date;

ID = IDField.getText();
firstName = firstNameField.getText();
salary = annualSalField.getText();
date = startDateField.getText();

新的String 带有红色下划线...

 c = new String(ID, firstName, lastName, salary, date);
    employee.add(c);

}                                         

private void listButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           

//Code here gets listed in Field...

    }    

【问题讨论】:

  • @Que.. 你有一个名为 Company 的类吗?

标签: java arrays list


【解决方案1】:

也许你想做:

 List<String> c = new ArrayList<String>(5);
 c.add(ID);
 c.add(firstName);

等等。

Arrays 类中有一个方便的方法:

Arrays.asList("Larry", "Moe", "Curly");

【讨论】:

    【解决方案2】:

    是说没有公司的定义,所以不知道怎么做一个数组列表。

    ArrayList&lt;String&gt;它确实理解,因为它知道字符串的定义。

    new String(ID, ... ) 现在它正在查看 string 的定义,寻找一个接受五个字符串参数的构造函数,并且正在苦苦挣扎......

    您可能还想多考虑一下您的名字,一个名为员工的公司的集合势必会将您带入一个糟糕的地方。称为 Date 和 Salary 的字符串也不是什么好东西。

    【讨论】:

      【解决方案3】:

      ArrayList 需要介于 &lt; &gt; 之间的类型。字符串是一种类型,在您的示例中,公司似乎是一个变量。 employee 列表应该有什么类型?员工是字符串列表吗?它是一些用户定义类的列表吗?你需要知道这一点。

      http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html

      举个例子:

      ArrayList<UserDefinedClass> myList = 
          new ArrayList<UserDefinedClass>(initialCapacity);
      // initialCapacity should be a previously defined int.
      // Or
      ArrayList<String> someNames = new ArrayList<String>();
      // Uses a default capacity of 10 when none is provided.
      

      其次,String 是 Java 中一个有趣(但非常方便)的对象。不应使用 new 关键字创建字符串,而应像使用 int charshort 之类的原语一样分配字符串。这是由于一种叫做“字符串实习”的东西,它本身值得谷歌搜索。分配字符串:

      String word = "Strong Bad";

      【讨论】:

        【解决方案4】:

        以下内容可能对您有所帮助..

        ArrayList<Company> employee=new ArrayList<Company>();
        
        Company employee1=new Company();
        employee1.setId(id)
        employee1.setFirstname(firstname);
        employee1.setSalary(salary);
        employee1.setDate(dates);
        
        employee.add(employee1);
        

        你必须有一个像这样的公司类

        class Company {
        String id,firstname,lastname,salary,dates;
        
        //setter   getter method   
        

        (在Netbeans中可以通过右键->插入代码->setter和getter来实现)

        干杯,

        【讨论】:

          【解决方案5】:

          例如采取这一行...这个程序的开头,“公司” 带有红色下划线(我正在使用 netbeans),我不知道为什么,它有效 像“字符串”一样好,所以我的问题是......它总是必须是 定义为字符串?

          没有。去阅读泛型。 ArrayList 可以定义为采用任何类型。因此,只要 company 是类名,您的声明就可以了。顺便说一句,类名的第一个字母应始终使用大写,以遵循通常的约定。

          根据您的c = new String(ID, firstName, lastName, salary, date); 行判断,您需要了解Java 中的对象。字符串是一种对象。查看 String 类的Javadoc:没有构造函数可以按照您编码的顺序接受其他字符串作为参数。因此,您无法按照您尝试的方式构造新字符串。您似乎对如何初始化字符串感到困惑。基本上看起来你需要阅读关于构造对象的 Java 教程,以及什么是类和方法。

          【讨论】:

          • 哎呀,就我一个人,还是这个回答有点敌意?
          • @BlackVegetable 这不是本意。不过,我在提交之前没有重新阅读我的帖子。编辑为听起来不那么敌对。编辑:更好?
          • 我觉得您的编辑与您的第一个答案或多或少相同,但无论哪个 =P 谁在乎?
          • @Que 至少它是诚实的。我看不出为您编写代码会有什么帮助。我回答了您关于为什么会出现错误的问题。我还告诉过你应该学习哪些概念来理解为什么会出现错误。这比给你一个准确的代码示例来解决你的问题要有用得多,我不会这样做。
          • @KyleM 我尊重这一点,我并没有要求为我完成正确的代码(虽然......老实说,作为一名学生,这是额外的奖励)
          猜你喜欢
          • 2017-07-03
          • 2011-10-25
          • 1970-01-01
          • 2013-11-14
          • 1970-01-01
          • 2021-10-21
          • 1970-01-01
          • 2019-07-03
          • 2013-10-13
          相关资源
          最近更新 更多