如何在java中的对象值列表中获取特定值?

时间:2013-09-02 11:56:28

标签: java

我是java的新手!任何人都可以告诉我如何在对象列表中获取特定值吗?

这是我的代码:

end = CourseLocalServiceUtil.getCoursesCount();

List<Course> c = CourseLocalServiceUtil.getCourses(0, end);

c对象包含课程对象列表。我想只显示所有课程对象的特定列值。

我需要在所有课程对象中获得c.getCourseName()。有谁可以帮助我?

6 个答案:

答案 0 :(得分:0)

我建议使用Map接口的一些内置实现。

比如,HashMap,其中 courseName 将是Counse将是相应的

这种方法将允许您获得复杂度为 O(1)的特定元素。否则,如果您更倾向于使用List,则必须搜索具有某个循环的特定对象。

答案 1 :(得分:0)

对每个循环使用a,如下所示

   for(Course course : c)
    {

       System.out.println(c.getCourseName() + "  " + c.getCourseID() + ...so on)
    }

答案 2 :(得分:0)

toString()类的java.lang.Object方法覆盖到您的最佳方法 “课程”课程如下。

public class Course {

    private String column1;
    private String column2;
    //dont want to show the value of this column.
    private double fees;

    public Course(String column1, String column2, double fees) {
        super();
        this.column1 = column1;
        this.column2 = column2;
        this.fees = fees;
    }


    @Override
    public String toString() {
        return "Course [column1=" + column1 + ", column2=" + column2 + "]";
    }


    /**
     * @param args
     */
    public static void main(String[] args) {
        Course course = new Course("abc","xyz",1000.00);
        System.out.println(course);
    }

}

答案 3 :(得分:0)

如果您提供将A转换为B的List<A>,那么库Guava有一种方法可以帮助您将List<B>转换为Function<A,B>

您的输入是List<Course>。您想要的输出是List<String>。这是一个例子:

Collection<String> col = Collections2.transform(inputCol, new Function<Course, String>() {
  @Nullable
  @Override
  public String apply(@Nullable Course input) {
    //Here, specify how to extract the value you want from the Course.
    return input.getName();
  }
});

答案 4 :(得分:0)

课程班级:

public class Course {

   //declaration of properties
   private String courseName;
   ....other property declaration    


  //setter/getter methods for properties as applicable...         


  /*
  override toString. This will be used when you use object.toString(). 
  E.g. in Course c=new Course(), and you print as System.out.println(c), 
  it will call to toString() and will be printed the return value. 
  */

   @Override
   public String toString() {
        return "\n"+courseName;
    }  

}

您打印列表的代码......

end = CourseLocalServiceUtil.getCoursesCount();

List<Course> c = CourseLocalServiceUtil.getCourses(0, end);
System.out.println(c);

您还可以将所有课程存储在String中:

String allCourse = c.toString();
System.out.println("List of courses = "+allCourse);

注意:toString()是一个跨任何对象使用并从Object类继承的方法。您也可以根据您自己的逻辑对员工,课程等任何对象进行覆盖并实施它来自定义您的toString()。

您可以看到在ArrayList或LinkedList中实现的toString()以获得更好的想法。

答案 5 :(得分:0)

 List<Course> c= CourseLocalServiceUtil.findCourse(cname);

       System.out.println(c);
       ArrayList al =new ArrayList(c);
       String cname1=c.get(0).getCname();   
       System.out.println(cname1);

单个课程对象的工作