【问题标题】:Sum Method / for-loop求和方法/for-loop
【发布时间】:2013-11-19 19:09:45
【问题描述】:

这对你来说可能是个愚蠢的问题,但在谈到 java 时,我几乎是一个磨砂膏。 我想编写一个方法public int sum(),它正在遍历我的列表并返回访问者总数。

我没有得到我应该在我的 for 循环中写的内容。我尝试了“长度”等,但它不起作用是有原因的。

      import java.util.*;
          public class VisitorList {
                BesucherTag head;
                BesucherTag z;

            public class VisitorDay {
            public int day;
            public int month;
            public int year;    
            public int number;
            VisitorDay next = null;

            public VisitorDay(int day, int month, int year, int number){
                this.day = day;
                this.month = month;
                this.year = year;
                this.number = number;
            }
    }

                public VisitorList(){
                head = new VisitorDay(0,0,0,0);
                z = new VisitorDay(0,0,0,0);
                head.next = z;
                z.next = z;
                }

                public int sum(){
                    for(int i = 0; i <= "?!" ; i++){

                    }
}

【问题讨论】:

  • 它应该遍历什么列表?我没有看到任何列表。
  • 我想你可以使用while(head.next != null) { count++; head = head.next; }遍历你的结构
  • 这不是某种链表吗?我不确定,但我知道我不应该生成数组列表或其他东西。这是我应该使用的方法/类:S
  • 您的问题在您提供的代码上下文中毫无意义。该方法应该运行什么列表?
  • @Lauri Elias 是的。我想那会奏效。所以我创建了一个局部变量“count=0;”以前,对吧?你知道我如何计算访客人数。我不知道如何只总结“VisitorDay”的 1 个属性

标签: java loops for-loop methods sum


【解决方案1】:

您似乎正在尝试创建自己的名为VisitorList 的链表实现。您可能应该只使用java.util.LinkedList&lt;VisitorDay&gt;。然后你会遍历列表:

java.util.List<VisitorDay> listOfVisitors = new java.util.LinkedList<VisitorDay>();

//code which adds your visitors

//now the loop
for(VisitorDay vd : listOfVisitors){
    count++;
}

或者类似的东西。

【讨论】:

  • 好的。问题是我得到了某种工作表并且没有这样的提及:/我想我稍后会在主要方法中生成一些“VisitorDay´s”,然后我只需要添加它们的数字。但只是他们的数字。只要“VisitorDay´s”都是“VisitorList”类的一部分,它应该在没有数组的情况下工作,不是吗?
【解决方案2】:

如果你需要实现你自己的 LinkedList,你会想要这样的东西。如果您不能使用列表,请使用数组。这就是列表是如何在幕后实现的。您还需要实现某种addVisitorDay 方法,该方法添加到dayList 并在达到容量时自动增加大小。

sum 方法应该放在VisitorList 类中。该类包含一个 VisitorDays 数组,这是您从中获取总和的地方。

public class VisitorList {

    public static final CAPACITY = 10;
    VisitorDay[] dayList = new VisitorDay[CAPACITY];  

    public int sum(){
        int sum = 0;
        for (VisitorDay vd : dayList){
            sum += vd.getNumber();
        }
        return sum;
    }  
}

public class VisitorDay{
    private number;

    public getNumber(){
        return number;
    }
}

编辑:忘记上面的所有内容

public class VisitorDay {
        public int day;
        public int month;
        public int year;
        public int number;    

        public static sum = 0;

        public VisitorDay(int day, int month, int year, int number){
            this.day = day;
            this.month = month;
            this.year = year;
            this.number = number;
            sum += number;
        }

        public int sum(){
            return sum;
        }
}

由于sum 字段为static,因此每次创建VisitorDay 对象时,总和都会增加。每当您想获得总和时,只需调用sum() 方法即可获得总和。

【讨论】:

  • 好的。问题是我得到了某种工作表并且没有像这样提到:/我想我稍后会在主要方法中生成一些“VisitorDay´s”,然后我只需要添加它们的数字。但只是他们的数字。只要“VisitorDay´s”都是“VisitorList”类的一部分,它应该在没有数组的情况下工作,不是吗?
  • 作业是否需要VisitorList 和VisitorDay?它是否需要sum 方法?有很多方法可以完成您的任务。但我想建议你最容易接受的暗杀方式。
  • 是的。除了那个方法,一切都应该没问题:/我应该完全写这个方法。一种“求和”方法,即添加几天的访问者数量。甚至没有提到获取数字的“get”方法。如果我需要它,它会被提及。
  • 分配是否说明 sum 方法应该在哪里?
  • 哦,好吧。它不在“VisitorDay”课程之外:/我的错。这有什么改变吗?
猜你喜欢
  • 2016-07-05
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 2016-04-20
  • 2011-11-06
  • 2016-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多