编辑:方法签名
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) 编辑:如果用户单击“删除”以删除 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) 我试图了解运行时间的计算,然而,我已陷入僵局.如果你有两个功能,比如说
(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).我做错了吗?
alert ×1
algorithm ×1
arrays ×1
comparable ×1
hashset ×1
java ×1
java-8 ×1
javafx ×1
performance ×1