问题列表 - 第44577页

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

Java 集合包含所有奇怪的行为

我有以下代码,我在其中使用 superList 和 subList,我想检查 subList 实际上是 superList 的 subList。

我的对象没有实现 hashCode 或 equals 方法。我在测试中创造了类似的情况。当我运行测试时,结果显示 JDK 集合和普通集合的结果之间的性能差异非常大。运行测试后,我得到以下输出。

使用 Java Collection API 的时间流逝 8953 MilliSeconds & 结果为真 使用 Commons Collection API 的时间流逝 78 MilliSeconds & 结果为真

我的问题是为什么 java collection 在处理 containsAll 操作时如此缓慢。我在那里做错了吗?我无法控制从遗留代码中获得的集合类型。我知道如果我对 superList 使用 HashSet 那么我会使用 JDK containsAll 操作获得很大的性能提升,但不幸的是,这对我来说是不可能的。

package com.mycompany.tests;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

import org.apache.commons.collections.CollectionUtils;
import org.junit.Before;
import org.junit.Test;

public class CollectionComparison_UnitTest {

    private Collection<MyClass> superList = new ArrayList<MyClass>();
    private Collection<MyClass> subList = new HashSet<MyClass>(50000);

    @Before
    public void …
Run Code Online (Sandbox Code Playgroud)

java collections list hashset

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

当找到最大素数因子时,"整数常数对于'long'类型来说太大了"

我正在努力解决欧拉项目3:

Description: The prime factors of 13195 are 5, 7, 13 and 29.
             What is the largest prime factor of the number 600851475143 ?
Run Code Online (Sandbox Code Playgroud)

这是我生成答案的代码.但是我需要一个整数类型来保存600851475143.当我在Mac上的GCC上编译它时,我得到:

integer constant is too large for ‘long’ type". 
Run Code Online (Sandbox Code Playgroud)

我希望很久很久就可以很容易地掌握这个数字 我也试过让它没有签名.为什么我的代码不能容纳那么少的数字,我该怎么做才能使它工作?

#include <iostream>
#include <vector>

using namespace std;

static bool IsPrimeFactor(int numToTest,int testNum,vector<int> factors)
{
    if(numToTest%testNum==0) // is it a factor?
    {
        // see if it is a prime factor
        for(unsigned int i=0; i < factors.size(); i++)
        {
            if(testNum%factors[i]==0)  // see if this factor …
Run Code Online (Sandbox Code Playgroud)

c++ prime-factoring

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

选择Android设备上的文件夹

我想让用户选择目录并保存下载的文件(我的应用程序下载文件).我知道有些工具(例如ES文件资源管理器)提供了这样的intent-filters.请参阅http://www.estrongs.com/en/support/developers.html.我为结果启动活动,然后获得选定的文件夹作为结果.

另外,我知道没有"选择文件夹"意图标准(我不能使用与其他工具相同的意图).您知道其他支持此类功能的工具吗?我想让用户使用他的工具,而不是ES文件管理器.

此外,Astro是否提供此类意图过滤器?我在他们的页面上找不到这个信息.(我认为astro是android最常用的文件管理器)

android file-manager android-intent

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

C++析构函数:当内存被释放时?

如果我删除了一个导致其析构函数被调用的对象,那么在析构函数完成函数中的任何操作之前或之后是否释放了内存?

c++ destructor

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

如何在ms访问中重置自动增量字段

可能重复:
如何在访问擦除表后从1开始计数?

大家好

在MS Access数据库中重置auti_increment字段的查询是什么?

database ms-access

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

WPF - 在ItemsSource更改时重置ListBox滚动位置

我目前有一个ListBox,其ItemsSource集合绑定到我的viewmodel上的一个属性,类型为IEnumerable.当preoprty的引用发生更改时,ListBox会按预期更新,但是我有一个问题,如果我有大量项目并滚动到ListBox的底部,然后将引用更改为包含,例如,1项目的另一个集合,ListBox视图为空,不显示滚动条.然后我必须用鼠标滚轮向上滚动列表框,直到1项进入视图.

因此,我认为我所追求的是,​​只要ItemsSource属性发生更改,就会将ListBox的滚动位置重置为顶部,这样无论收集的大小有多少,都会始终显示某些内容.

wpf scroll listbox itemssource

18
推荐指数
2
解决办法
8995
查看次数

按数组值选择选择框选项

我通过json类型的ajax请求得到一些值.当我使用alert(msg.options)它时警报["1","3","8"]

如果我使用下面的脚本来选择所需的选项,它的工作原理.它仅选择值为1和3以及8的选项:

$('#input_6').val(["1","3","8"]);
Run Code Online (Sandbox Code Playgroud)

但是,即使它发出相同的警告,下面的脚本也不起作用:

$('#input_6').val(msg.options);
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?谢谢...

javascript jquery json

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

为每条记录重复一个复杂的布局

我有一个查询数据库并获取记录集的应用程序,在显示器上,我需要使用一个复杂布局的行来呈现这些数据.每行包含一些ImageView,许多TextView等...

以编程方式创建行布局真的很困难,有没有办法从xml中获取整个行布局(行布局的容器和子行),编辑一些属性(如行布局的TextViews)并添加结果为LinearLayout?

xml layout android

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

C++新手问题 - 使用try,throw,catch进行基本错误处理

我试图理解C++中的错误处理.

我已经读过使用try,throw,catch比使用带有返回值的if语句更好的样式和简单.但我不确定我是否真的理解如何尝试,抛出,抓住工作.我在下面做了一个简单的例子,很高兴获得有关任何问题或不良风格的反馈.我的目标是从检查另一个计算结果的示例中创建一个函数.

以下是关于try,throw,catch的问题:(1)catch语句是否应该包含在我的函数中?或者它应该在其他地方,例如在main()或初始计算的函数中?

(2)使用try,catch,throw这个简单的东西(我希望改进我的风格)是否过度?

(3)如果有错误,我想终止程序.我该怎么办?或者"捕获"是否意味着自动完成?

(4)我不明白使用cerr.为什么不使用cout?我在这里正确使用过cerr吗?我是否也应该在if/else语句中使用它?

非常感谢您的帮助.

这是我做的例子:

double calculated = 10.2; // from previous calculation
double tolerance = 0.3; // I can set this in this function
double valueWanted = 10.0; // from previous calculation

const int calcError = 5; // I picked this number randomly to use for indicating an error

try
{
   if (fabs(fTargetValue - fCalculated) <= fTolerance)
     cout << "Result is within range.";

   else
     cout << "Failed.";
     throw calcError;
}

catch (const int calcError)
{
   cerr …
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling

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