小编Sam*_*Sam的帖子

Java Swing为EXIT_ON_CLOSE添加动作侦听器

我有一个简单的GUI:

    public class MyGUI extends JFrame{

        public MyGUI(){
           run();
        }

        void run(){
           setSize(100, 100);
           setVisible(true);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// maybe an action listener here
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想打印出这条消息:

 System.out.println("Closed");
Run Code Online (Sandbox Code Playgroud)

当GUI关闭时(按下X时).我怎样才能做到这一点?

java swing jframe windowlistener

24
推荐指数
1
解决办法
5万
查看次数

在haskell中,做什么:+:在数据类型定义中意味着什么?

这是新数据类型的定义:

data Total a = Total a :+: Total a 
              |...
Run Code Online (Sandbox Code Playgroud)

什么:+:在这种类型定义中意味着什么?

haskell

12
推荐指数
1
解决办法
790
查看次数

使用自定义排序对String数组进行排序

我有一个String数组:

 String[] str = {"ab" , "fog", "dog", "car", "bed"};
 Arrays.sort(str);
 System.out.println(Arrays.toString(str));
Run Code Online (Sandbox Code Playgroud)

如果我使用Arrays.sort,输出是:

 [ab, bed, car, dog, fog]
Run Code Online (Sandbox Code Playgroud)

但我需要实现以下排序:

FCBWHJLOAQUXMPVINTKGZERDYS

我想我需要实现Comparator和覆盖compare方法:

 Arrays.sort(str, new Comparator<String>() {

        @Override
        public int compare(String o1, String o2) {
            // TODO Auto-generated method stub
            return 0;
        }
    });
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

java arrays

10
推荐指数
2
解决办法
2万
查看次数

对Big O符号感到困惑

我有两个问题:

public static void method1(int[] a, int[] b) {
   int sum1 = 0, sum2 = 0;

   for(int i = 0; i < a.length; i++) {
      sum1 += a[i];
   }

   for(int i = 0; i < b.length; i++) { 
      sum2 += b[i];
   }
}
Run Code Online (Sandbox Code Playgroud)

问题1:这是否在O(n)中?是否有多少循环(不是嵌套循环)method1

问题2:如果有的话怎么办?

Arrays.sort(a);
Run Code Online (Sandbox Code Playgroud)

里面method1,它有什么功能?

java big-o

8
推荐指数
1
解决办法
273
查看次数

快速失败 - 只有在删除元素时才会发生异常

快速失败:意味着如果他们在迭代开始后检测到集合已经发生了变化,那么他们就会抛弃未经检查的东西 ConcurrentModificationException.

我写了一个测试示例来解决这个问题:

    String hi = "Hi";
    list.add(hi);
    list.add("Buy");
    System.out.println("list before: " + list);
    for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
        String string = iterator.next();
        list.add("Good");
    }
Run Code Online (Sandbox Code Playgroud)

输出是:

list before: [Hi, Buy]
Exception in thread "main" java.util.ConcurrentModificationException
    at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
    at java.util.ArrayList$Itr.next(ArrayList.java:831)
    at thread.CollectionTest.main(CollectionTest.java:19)
Run Code Online (Sandbox Code Playgroud)

这是预料之中的.但是,删除元素时,不会抛出异常:

    List<String> list = new ArrayList<>();

    String hi = "Hi";
    list.add(hi);
    list.add("Buy");
    System.out.println("list before: " + list);
    for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
        String string = iterator.next();
        list.remove(hi);
    }
Run Code Online (Sandbox Code Playgroud)

输出:

list before: [Hi, Buy] …
Run Code Online (Sandbox Code Playgroud)

java collections concurrency

6
推荐指数
1
解决办法
109
查看次数

SQL两个表并创建一个链接表

我有两个表:员工(ID,姓名,地址)和商店(ID,地址),我想记录有关在每个商店工作的人的信息.

我想创建一个名为Employee_List表的新表.我的问题:

1- Employee_List和Employee有一对多的关系,对吧?

2-要存储的Employee_list具有一对一的关系,对吧?

3-如何为Employee_List表定义外键和主键?

在此输入图像描述

sql t-sql sql-server relational relational-database

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

二维ArrayList设置一个元素

我有这段代码:

List<ArrayList<Integer>> tree = new ArrayList<ArrayList<Integer>>();

tree.add(0, new ArrayList<Integer>(Arrays.asList(1)));
tree.add(1, new ArrayList<Integer>(Arrays.asList(2,3)));
tree.add(2, new ArrayList<Integer>(Arrays.asList(4,5,6)));
Run Code Online (Sandbox Code Playgroud)

例如,我想用9代替5.我怎么能这样做?

java arraylist

5
推荐指数
1
解决办法
8438
查看次数

返回后不调用onRestart方法

MainActivity有一个Button当它被按下这个方法被称为:

 public void sendMessage(View view) {
    //Do something in response to the button
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText)findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)

所以应用程序显示DisplayMessageActivity,然后按下ActionBar返回MainActivity.并且我有一个onRestart我认为应该在返回MainActivity(它确实返回MainActivity)时调用它,但它没有被调用.什么似乎是问题?

onRestart 方法:

@Override
protected void onRestart() {
    super.onRestart();
    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(str);
    setContentView(textView);
}
Run Code Online (Sandbox Code Playgroud)

android android-activity

3
推荐指数
1
解决办法
2657
查看次数

在Eclipse中运行Java程序,就像从命令行运行一样

所以我发现了一些类似于我的问题,但没有一个问题具体解决了我遇到的问题.

我的程序将由命令行参数调用,例如:

java Main "inputFile.txt" "inputFile2.txt"

我正在使用Eclipse进行编程,并且正在使用它public void main(String[] args)来期待arg[0]arg[1]

但是当我在eclipse中运行时,我无法输入我使用的文件.为了解决这个问题,我将我需要的2个文件添加到我的项目工作中.然后在运行配置中,我将这些文件指定为:inputFile.txt inputFile2.txt

因此,当我现在运行该程序时,它只是说它找不到inputFile.txt

基本上我不确定问题出在哪里,我是否输入运行配置中的参数错误,我是否将它们放在我的工作空间中,或者我的代码是否不正确.

java eclipse

3
推荐指数
1
解决办法
8502
查看次数

实现接口的类有更多的方法

我有一个界面:

public interface IUser {
   public boolean login();
}
Run Code Online (Sandbox Code Playgroud)

以及两个实现该接口的类:

public class UserA implements IUser{

   public boolean login() {
       System.out.println("login");
   }

  public void update() {
      System.out.println("update");
  }
}


public class UserB implements IUser {

   public boolean login() {
       System.out.println("login");
   }

   public void delete() {
       System.out.println("delete");
   }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如果我创建一个用户:

IUser user = new UserA();
Run Code Online (Sandbox Code Playgroud)

用户对象无权访问update()但建议使用接口创建对象,我想知道是否有可以使用的最佳实践或设计模式(而不是强制转换)?

java design-patterns

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