小编IRG*_*uce的帖子

如何使用HashSet查找两个Comparable数组中的公共元素?

编辑:方法签名

    public Comparable[][] findCommonElements(Comparable[][] collections)
Run Code Online (Sandbox Code Playgroud)

是错的.它应该是

    public Comparable[] findCommonElements(Comparable[][] collections)
Run Code Online (Sandbox Code Playgroud)

但在我的IDE中更改它会让一切都变得混乱.我几乎觉得自己已经超出了我的知识范围,因为我并不完全理解Set,而2D数组让我很糟糕.

我需要编写一个带有两个Comparable数组的算法,以线性时间效率迭代它们,并显示公共元素.我已经读过使用HashSet会给我最快的时间效率,但我已陷入僵局.原因如下:

我们得到了指令和一行代码,这是方法签名

public Comparable[][] findCommonElements(Comparable[][] collections)
Run Code Online (Sandbox Code Playgroud)

这意味着我必须返回2d数组,"集合".我通过电子邮件发送了我的教授使用HashSets,我得到了批准,除了我有这个问题:

"你可以在你的findCommonElements方法中使用HashSet,但是你需要能够计算执行的比较次数.尽管散列通常非常有效,但是在发生碰撞时会进行一些比较.为此,你需要可以访问您使用的HashSet的源代码.您还需要在CommonElements类中使用"getComparisons()"方法来返回比较次数."

在两个学期的编程中,我没有学习HashSets,Maps,Tables等.我正在尝试自己学习,我并不完全理解碰撞.

我的代码确实采用了两个数组并返回了公共元素,但是我的返回语句很复杂,因为我基本上编写它所以它会编译(2d Comparable数组是参数).

我在正确的道路上吗?这是代码:

public class CommonElements {

    static Comparable[] collection1 = {"A", "B", "C", "D", "E"}; //first array
    static Comparable[] collection2 = {"A", "B", "C", "D", "E", "F", "G"}; //second array
    static Comparable[][] collections = {collection1, collection2}; //array to store common elements. 
    static Set<Comparable> commonStuff = new HashSet<>(); //instance of Set containing common elements

    public …
Run Code Online (Sandbox Code Playgroud)

java arrays hashset comparable

7
推荐指数
1
解决办法
2614
查看次数

如何在当前primaryStage上设置警报框位置?(JavaFX)

编辑:如果用户单击“删除”以删除 ListView 中的项目,我会弹出一个警告框。它有效,但我希望它弹出原始阶段。它出现在我的第一台显示器上。有没有办法在显示时设置警报的位置?

请注意,“所有者”在不同的类中,我使用 Scenebuilder/FXML 创建了所有内容。我不知道如何让 initOwner() 工作。这是“主要”类:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Assignment_5 extends Application {
    public Stage primaryStage;

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("Assignment_5.fxml"));
    primaryStage.setTitle("Plant Pack");
    primaryStage.setScene(new Scene(root, 1200, 500));
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)

这是 Controller 类中的工作代码。没有必要实现此警报的模式,但它会是一个很好的补充,使其更方便。我只是不知道如何将主 Window 从 Main 类传递给这个:

    protected void handleDeleteButtonClick(ActionEvent event) {
    Alert alertBox = new Alert(Alert.AlertType.CONFIRMATION, "Confirm Delete", ButtonType.OK, ButtonType.CANCEL);
    alertBox.setContentText("Are you sure you …
Run Code Online (Sandbox Code Playgroud)

alert javafx java-8

2
推荐指数
1
解决办法
7627
查看次数

如何计算运行时间算法中类似效率的N值?

我试图了解运行时间的计算,然而,我已陷入僵局.如果你有两个功能,比如说

    (N^3 + 2N^2 + 6N + 3)
Run Code Online (Sandbox Code Playgroud)

    (6N^2 + 4N + 10)
Run Code Online (Sandbox Code Playgroud)

你如何找到两个算法达到相同效率的N的值?我宁愿不给出实际价值,但如何解决问题.我为N ^ 3和6N ^ 2插入0,1,4,10和67(给出的选项),但在每种情况下N ^ 3总是更小(当然除了0).我做错了吗?

algorithm performance

0
推荐指数
1
解决办法
92
查看次数

标签 统计

alert ×1

algorithm ×1

arrays ×1

comparable ×1

hashset ×1

java ×1

java-8 ×1

javafx ×1

performance ×1