首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理来自javascript的Java?

如何处理来自javascript的Java?
EN

Software Engineering用户
提问于 2011-10-04 06:45:09
回答 5查看 4.5K关注 0票数 5

作为对编程的介绍,我学到了一些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中,我必须将整数转换为字符串才能开始,然后找到连接二维数组的方法.不用说,这样做是错误的。

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2011-10-04 07:44:42

任何事情都使用数组是个坏主意。即使在JavaScript。但是在Java中更是如此,因为数组在Java中要窄得多。

返回数组的元素实际上表示结果。你应该相应地传达它:

代码语言:javascript
复制
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;
     }
}

然后,您的返回值应该如下所示:

代码语言:javascript
复制
ArrayList.ofList(new Result('1-3-5', 50), new Result('2-5-8', 90), new Result('2-4-7', 75))
票数 8
EN

Software Engineering用户

发布于 2011-10-04 07:35:37

Java不是JavaScript。为了欣赏JavaScript的类型系统,您必须摆脱松散的输入习惯。

在松散语言中,您可以优化以方便地实现正在调用的函数。由于该函数可以接受和返回任何格式的数据,因此可以轻松地实现该函数,而无需花费大量的开销。缺点是,无论是谁调用您的函数,都必须查看您的函数的源代码,才能知道它接受哪些数据以及它返回什么数据。对于单个程序员来说,这是有效的(假设您可以记住您的功能),对于一个团队来说则是效率低下的(每个人都必须阅读所有的源代码)。

在像Java这样的严格语言中,您可以为函数调用方的轻松实现进行优化。调用方知道函数接受的数据格式,以及函数返回的数据格式。定义这些数据格式越严格,调用者就会变得越容易。他们可以依赖于函数签名,而无需查看源代码,以了解如何使用该函数。对于单个程序员来说,这是低效的,但对于团队来说却是有效的(人们可以像对待黑匣子一样对待函数)。

在这种特殊情况下,您必须仔细考虑该函数如何定义其输入和输出,从而使其成为黑匣子。您不会返回字符串数组。您将返回特定类型(可能是自声明)类型的对象列表。

票数 7
EN

Software Engineering用户

发布于 2011-10-04 07:19:40

首先,我建议您摆脱Java和Javascript在任何方面都相关的概念。对于新来的人来说,这是一个常见的误解,但除了名称和一些基本语法之外,它们与C++和Python有着密切的联系。

现在,我并不完全理解实际问题的需求(数字字符串代表什么?)但是,如果您想决定在Java中使用什么数据结构,那么需要查看的是java.utils包。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/112249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档