作为对编程的介绍,我学到了一些javascript,现在我正在尝试转到Java和Python,然后从那里转到c++、c#等等。
我被课业缠住了,所以我几乎没有机会学到任何东西,但我一直在四处寻找简单的Java问题,我可能会问自己,并尝试从答案中学习。
我看到一个很有趣的。这是一项家庭作业,任务是找到最有效的工作顺序,假设每项工作需要两天时间,并且必须按顺序排列。我本可以很容易地在javascript中做到这一点,但我很难在Java中弄清楚如何做到这一点。使用javascript,我只返回一个二维数组。每个元素都是包含利润和工作天数的数组。忽略这是否是在javascript中返回数据的愚蠢方法,在Java中返回这样的数据的正确方法是什么?
换句话说,我要返回的javascript数组看起来如下所示:
[ “1-3-5”,50,‘2-5-8’,90,“2-4-7”,75 ]
在Java中,我必须将整数转换为字符串才能开始,然后找到连接二维数组的方法.不用说,这样做是错误的。
发布于 2011-10-04 07:44:42
任何事情都使用数组是个坏主意。即使在JavaScript。但是在Java中更是如此,因为数组在Java中要窄得多。
返回数组的元素实际上表示结果。你应该相应地传达它:
class Result {
public int someInt;//no idea what this actually is, but a class will allow you giving it a proper name
public String someString;//same as with the other field. Also, I suppose String is actually wrong here, since it rather looks like a '-'-separated list of integers, which should rather be represented as an array of integers
Result(String someString, int someInt) {
this.someString = someString;
this.someInt = someInt;
}
}然后,您的返回值应该如下所示:
ArrayList.ofList(new Result('1-3-5', 50), new Result('2-5-8', 90), new Result('2-4-7', 75))发布于 2011-10-04 07:35:37
Java不是JavaScript。为了欣赏JavaScript的类型系统,您必须摆脱松散的输入习惯。
在松散语言中,您可以优化以方便地实现正在调用的函数。由于该函数可以接受和返回任何格式的数据,因此可以轻松地实现该函数,而无需花费大量的开销。缺点是,无论是谁调用您的函数,都必须查看您的函数的源代码,才能知道它接受哪些数据以及它返回什么数据。对于单个程序员来说,这是有效的(假设您可以记住您的功能),对于一个团队来说则是效率低下的(每个人都必须阅读所有的源代码)。
在像Java这样的严格语言中,您可以为函数调用方的轻松实现进行优化。调用方知道函数接受的数据格式,以及函数返回的数据格式。定义这些数据格式越严格,调用者就会变得越容易。他们可以依赖于函数签名,而无需查看源代码,以了解如何使用该函数。对于单个程序员来说,这是低效的,但对于团队来说却是有效的(人们可以像对待黑匣子一样对待函数)。
在这种特殊情况下,您必须仔细考虑该函数如何定义其输入和输出,从而使其成为黑匣子。您不会返回字符串数组。您将返回特定类型(可能是自声明)类型的对象列表。
发布于 2011-10-04 07:19:40
首先,我建议您摆脱Java和Javascript在任何方面都相关的概念。对于新来的人来说,这是一个常见的误解,但除了名称和一些基本语法之外,它们与C++和Python有着密切的联系。
现在,我并不完全理解实际问题的需求(数字字符串代表什么?)但是,如果您想决定在Java中使用什么数据结构,那么需要查看的是java.utils包。
https://softwareengineering.stackexchange.com/questions/112249
复制相似问题