小编W.K*_*K.S的帖子

除了将SortedSet转换为Java中的Vector之外,还有什么更有效的选择?

我正在用Java编写联系簿应用程序.联系人显示在使用Sorted TreeSet列表模型的JList上.

我添加了一个搜索字段,并为其添加了一个关键监听器.输入每个键后,列表模型的子集功能用于显示缩小的联系人集.我希望JList显示这个缩小的子集.

我正在考虑将SortedSet转换为Vector,然后使用JList的setListData方法来显示结果,但我知道这将是缓慢且低效的,并且当您使用密钥监听器时,这是一个更糟糕的想法.

所以我想问一下,解决这个问题的最有效方法是什么.

谢谢你的帮助.

java subset jlist sortedset treeset

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

使用onDraw()创建自定义视图时出现NullPointerException

我正在创建一个我添加到FrameLayout的自定义视图.当我初始化视图时,我得到一个NullPointerException.我究竟做错了什么.该视图的代码是:

public class DocumentCameraMask extends View {

    private Context mContext;

    public DocumentCameraMask(Context context) {
        super(context);

        this.mContext = context;
    }

    @Override
    public void draw(Canvas canvas) {
        // TODO Auto-generated method stub

        Paint paint = new Paint();
        paint.setColor(this.mContext.getResources().getColor(R.color.textColor));
        paint.setStyle(Paint.Style.STROKE);

        Rect cropRect = new Rect(0,0,800,600);
        canvas.drawRect(cropRect, paint);

        super.draw(canvas);

    }

}
Run Code Online (Sandbox Code Playgroud)

cropRect大小将动态计算,这就是我需要创建此视图的原因.谢谢你的帮助.

logcat的

09-11 19:13:04.590:E/AndroidRuntime(4235):FATAL EXCEPTION:main 09-11 19:13:04.590:E/AndroidRuntime(4235):java.lang.RuntimeException:无法启动活动DocumentCameraActivity}:java .lang.NullPointerException 09-11 19:13:04.590:E/AndroidRuntime(4235):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)09-11 19:13:04.590:E/AndroidRuntime(4235) :在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2211)09-11 19:13:04.590:E/AndroidRuntime(4235):在android.app.ActivityThread.access $ 600(ActivityThread.java:149)09- 11 19:13:04.590:E/AndroidRuntime(4235):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1300)09-11 19:13:04.590:E/AndroidRuntime(4235):在android. os.Handler.dispatchMessage(Handler.java:99)09-11 19:13:04.590:E/AndroidRuntime(4235):在android.os.Looper.loop(Looper.java:153)09-11 19:13:04.590:E/AndroidRuntime(4235):在android.app.ActivityThread.main(ActivityThread.java) :4987)09-11 19:13:04.590:E/AndroidRuntime(4235):at java.lang.reflect.Method.invokeNative(Native Method)09-11 19:13:04.590:E/AndroidRuntime(4235):at java.lang.reflect.Method.invoke(Method.java:511)09-11 19:13:04.590:E/AndroidRuntime(4235):at com.android.internal.os.ZygoteInit $ …

android view nullpointerexception

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

Go App Engine项目的包结构

我一直关注Google App Engine的Go教程.

根据教程,我应该创建一个根项目目录,所有与项目相关的源文件都应该进入这个目录.因此,我的工作区看起来像这样:

/MyProject
 /router
  router.go
 /items
  items.go
Run Code Online (Sandbox Code Playgroud)

当我尝试在router.go中引用items.go时:

router.go

import(
    "items"
)

func itemsHandler(writer http.ResponseWriter, request * http.Request){
    anItem := items.Item{Id: 245,Name: "Chocolate",Price: 1.50};
}
Run Code Online (Sandbox Code Playgroud)

该应用程序无法编译,因为items is undefined现在我对如何组织Google App Engine上的Go项目非常困惑.我想知道的是

  1. 我的项目目录应该位于Go SDK的gopath目录中,还是位于任何地方?教程没有说清楚.

  2. Go App Engine项目的结构是什么,如何导入源文件?

google-app-engine go

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

使用AsyncTask时出现ExceptionInInitializerError

我正在使用AsyncTask从文件中读取数据.我在运行应用程序时遇到上述错误.

错误消息是:

03-29 20:06:08.445:E/AndroidRuntime(13191):java.lang.ExceptionInInitializerError 03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app.BouncingBall.HighScore.loadFromFile( HighScore.java:81)03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app.BouncingBall.HighScore.(HighScore.java:24)03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app.BouncingBall.BouncingBallActivity $ BouncingBallView.init(BouncingBallActivity.java:185)03-29 20:06:08.445:E/AndroidRuntime(13191):at com.google.app. BouncingBall.BouncingBallActivity $ BouncingBallView.run(BouncingBallActivity.java:173)03-29 20:06:08.445:E/AndroidRuntime(13191):at java.lang.Thread.run(Thread.java:1019)03-29 20: 06:08.445:E/AndroidRuntime(13191):引起:java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序03-29 20:06:08.445:E/AndroidRuntime(13191 ):在android.os.Handler.(Handler.java:121)

代码

private void loadFromFile()
    {
        new AsyncDataStorage().execute(FILENAME);
    }


class AsyncDataStorage extends AsyncTask<String, Integer, Boolean> {

        protected Boolean doInBackground(String... args) {
            try {
                FileInputStream fis = context.openFileInput(FILENAME);
                byte[]  raw = new byte[fis.available()];
                String rawData=null;
                while(fis.read()!=-1)
                {
                    rawData = new String(raw);
                }
                return (processRawData(rawData));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return false;
            } catch (IOException e) { …
Run Code Online (Sandbox Code Playgroud)

java android android-asynctask

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

我可以在Objective-C中将NSError**作为参数包含在init中吗?

我的iOS应用程序从REST服务获取JSON.JSON包含状态代码和数据.如果代码是200,则数据是请求的对象,否则数据是错误描述.

JSON可用于构建多种对象,因此我创建了一个工厂类,它在构造函数中获取json数据,实例方法根据需要将数据解析为不同的对象.

我的问题是,如果状态代码不是200,可以在构造函数中包含NSError**作为参数.方法头看起来像这样:

-(instancetype) initWithData:(NSData *) json error: (NSError **) error;
Run Code Online (Sandbox Code Playgroud)

json objective-c ios nsjsonserialization

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

当我更改行数时,具有 rowHeight 的 UITableView UITableViewAutomaticDImension 不会更新

我有一个UITableViewCell固定在底部的描述标签,如下所示: 在此输入图像描述

点击描述标签可在和numberOfLines之间切换:30

- (void)awakeFromNib {
    [super awakeFromNib];
    [self setupView];
}

-(void) setupView
{

    UITapGestureRecognizer * gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(toggleNumberOfLines)];
    self.jobDescriptionLabel.userInteractionEnabled = YES;
    [self.jobDescriptionLabel addGestureRecognizer:gestureRecognizer];
}

- (void) toggleNumberOfLines {
    if(self.jobDescriptionLabel.numberOfLines != 0){
        self.jobDescriptionLabel.numberOfLines = 0;
    }else{
        self.jobDescriptionLabel.numberOfLines = kNumberOfLines;
    }
    [self.jobDescriptionLabel sizeToFit];
    [self layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)

当我点击标签时,行数确实发生了变化,但单元格不会扩展以容纳新的行数。我该如何解决?

折叠(默认):

在此输入图像描述

扩展:

在此输入图像描述

uitableview ios ios-autolayout uitableviewautomaticdimension

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

我无法部署我的单声道应用程序,因为o DllNotFoundException

当我尝试使用以下命令运行我的单声道应用程序时:

mono SimpleBrowser.exe
Run Code Online (Sandbox Code Playgroud)

我的Mac上出现以下错误:

Unhandled Exception: System.TypeInitializationException: An exception  was thrown by the type initializer for Gtk.Application ---> System.DllNotFoundException: glibsharpglue-2
  at (wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported ()
  at GLib.Thread.get_Supported () [0x00000] in <filename unknown>:0
  at Gtk.Application..cctor () [0x00000] in <filename unknown>:0    
  --- End of inner exception stack trace ---
  at SimpleBrowser.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0  [ERROR]
  FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Gtk.Application ---> System.DllNotFoundException: glibsharpglue-2
  at (wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported ()
  at GLib.Thread.get_Supported …
Run Code Online (Sandbox Code Playgroud)

c# mono

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

如何在同一个包中的另一个类中使用一个类?

我是Go的新手,我正在制作一个小型抽认卡应用程序.我的包结构是这样的

VocabHelper
|
-|src
--|com
---|wks
----|card
------Card.go
------Deck.go
----|main
------main.go
Run Code Online (Sandbox Code Playgroud)

甲板和卡是两个单独的类,但它们在同一个包中:

Card.go

package card

type Card struct{

    Question string
    Answer string

}
Run Code Online (Sandbox Code Playgroud)

Deck.go

package card

import (
    "math/rand"
)

type Deck struct{

    Cards []card.Card

}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译项目时,编译器说undefined:card即使卡与卡片在同一个包中.我怎样才能在甲板课上使用卡类?

package go

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

将具有不同值的N个项目分配到仅在组中的项目总和为D时才有效的组中

我有一个N个整数的数组,每个都有5到20之间的不同值.我想从它们中形成尽可能多的组,使得它们的总和是一个整数值D.

形成的组数,组的数量或阵列的每个元素必须使用的数量没有限制; 我们必须创建尽可能多的组,只有一组足够.

这是我的极限:

5 <= V:项目的值<= 20
5 <= N:元素数量<= 10000
20 <= D:单个组的数字总和<= 2000

例子

答:
数组:{5,7,7,6,6,8,8,10,11,12}
D:40
公认的解决方案之一:
[[5,7,8,8,12],[7, 6,6,10,11]

B:
数组:{5,6,6,7,7,10}
D:20
公认的解决方案之一:
[[6,7,7]]

建议的算法最好应该是psicocode或基于C语言,Java或Phyton.如果接受的答案不是Java,那么在接受解决方案后,它将被移植到Java中并在此处共享.

谢谢.

编辑:似乎无论选择哪种方法,如果N是非常大的数字,将花费大量时间来计算,我将尝试将N的最大值限制为50-100倍,然后测试更大的情况.

编辑2:很多很棒的解决方案,但是我需要花一些时间来检查它.

java algorithm

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