小编Ine*_*nce的帖子

删除Java ArrayList中的对象 - 时间消耗

我正在尝试从大小为7,140,​​000的ArrayList中删除140,000个对象.我预计这将需要几秒钟(如果那样),而是Java每千个对象需要几秒钟.这是我的代码:

     for (int i = list.size(); i > P; i--)
     {
         int size = list.size();

         int index = (int) (Math.random() * size);

         list.remove(index);
     }
Run Code Online (Sandbox Code Playgroud)

注意:P是我之前设置为7,000,000的常量.

循环的目标是从列表中随机删除对象,直到其大小为7,000,000.

Java花了这么长时间,因为我开始使用超过700万个对象?我从未注意到过去从ArrayLists中删除这个效率问题.如果有帮助,我使用DrJava Beta IDE.

java performance arraylist

11
推荐指数
2
解决办法
1686
查看次数

Java 输出给了我“无限”

当我应该得到一个数字时,我编写的 Java 程序的输出却给出了“Infinity”。我正在使用浮点数,并且我认为我的数字不会超出浮点数可以处理的范围。

我的问题是,如果 Java 计算的值大于所使用的数据类型可以处理的值,我是否会得到“Infinity”作为输出?或者只有当我在某个地方不小心除以零时才返回“无穷大”。

java math runtime-error divide-by-zero

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

C++ - 不了解try-catch中catch函数的语法

我一直在学习try-catchC++中的块,我不理解该catch函数的语法.在cppreference上,它说如下:

1)在catch子句中声明形式参数:

catch (const std::exception& e) { /* */ }
Run Code Online (Sandbox Code Playgroud)

2)声明一个未命名的参数:

catch (const std::exception&) { /* */ }
Run Code Online (Sandbox Code Playgroud)

3)编写一个"catch-all handler"(不确定这意味着什么),它被激活用于任何异常:

catch (...) { /* */ }
Run Code Online (Sandbox Code Playgroud)

问题:

1)这些catch块之间有什么区别?我不确定形式参数,未命名参数和"catch-all handler"有何不同.

2)ecatch条款的参数是什么类型的?是类型exception吗?除了示例中,我从未见过如何编写try-catch块的类型.如果是这样,我怎么能在一个catch子句中使用它,比方说,输出一条错误信息?e当我抛出错误时,可以接受我发送的字符串吗?

3)我已经尝试并编写了try-catch如下块:

#include <iostream>
#include <string>
#include <stdexcept>

try
{
    throw invalid_argument("Error, program stopped.");
}

catch(const string& e)
{
    cout << e;
}
Run Code Online (Sandbox Code Playgroud)

此代码成功调用catch块并打印我的消息:"Error, program stopped." …

c++ exception-handling exception

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

c ++ 14 - vec.begin()和begin(vec)之间有什么区别吗

在这个问题(/sf/ask/484850341/)中,user703016使用以下语法来访问vector cards_的迭代器:

对于C++ 98,他们建议使用:cards_.begin()和cards_.end()

对于C++ 11,他们建议使用:std :: begin(cards_)和std :: end(cards_)

对于C++ 14,哪种语法更可取,两者之间是否有任何真正的区别?在今天之前,我只看到了第一种语法.

c++ syntax iterator c++11 c++14

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

Java中的字符比空格小?

我正在用 Java 编写一个程序,我需要一个类似于空格(“”)的字符,只是显示时长度较小。理想情况下,字符大小是空格字符的一半。

我想知道是否存在这样的字符,或者是否有办法修改空格字符的长度,使其在输出给用户时更小。

java string output

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

c ++ - try块后是否需要立即写入catch块?

我的编译器给出了以下代码的错误:

#include <iostream>
#include <stdexcept>

using namespace std;


void test()
{
     throw runtime_error("Error");
}

int main()
{
     try
     {
          test();
     }

     for (int i = 0; i < 10; i++)
     {

     }

     catch (exception& e)
     {
          cout << e.what();
     }
}
Run Code Online (Sandbox Code Playgroud)

它说"错误:预期'捕获'之前'('令牌',它指的是for循环初始化中的'(').

在try块之后我是否必须立即编写catch块?我认为如果在try块中抛出一个错误,程序将冒出来,直到它找到一个合适的catch块.为什么这不适用于此?

c++ error-handling exception-handling try-catch c++11

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