相关疑难解决方法(0)

memset()比C中的循环效率更高吗?

memset比for循环更有效.所以,如果我有

char x[500];
memset(x,0,sizeof(x));
Run Code Online (Sandbox Code Playgroud)

要么

char x[500];
for(int i = 0 ; i < 500 ; i ++) x[i] = 0;
Run Code Online (Sandbox Code Playgroud)

哪一个更有效率,为什么?是否在硬件中有任何特殊指令来进行块级初始化.

c performance memset

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

用1,2 ... n填充数组的最短方法

在java中有没有这么快的东西?(快速编码)

int [] a = {1..99};
Run Code Online (Sandbox Code Playgroud)

或者我必须这样做:

int [] a=new int[100];
for (int i=0;i <100;++i){
a[i]=i;
}
Run Code Online (Sandbox Code Playgroud)

java arrays

29
推荐指数
4
解决办法
5万
查看次数

将布尔数组中的所有值设置为true

Java中是否有一个方法可以将布尔数组中的所有值设置为true?

显然我可以使用for循环来做这个,但是如果我(例如)有一个大的3D数组,我想使用循环会非常低效.

Java中是否有任何方法可以将某个数组中的所有值设置为true,或者在初始化数组时将所有值设置为true?

(例如

boolean[][][] newBool = new boolean[100][100][100];
newBool.setAllTrue();

//Rather than

for(int a = 0; a < 100; a++) {
    for(int b = 0; b < 100; b++) {
        for(int c = 0; c < 100; c++) {
            newBool[a][b][c] = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays variables boolean

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

在java中用null填充ArrayList的最快方法是什么?

我想要一个包含 n 组整数的列表,最初这个列表应该用 null 填充。许多 Sets 将在稍后初始化,有些将保持为 null。

我尝试了不同的方法来实现这一点,其中一些包括在这里:

List<HashSet<Integer>> List_of_Sets = Arrays.asList(new HashSet[n]);
Run Code Online (Sandbox Code Playgroud)
ArrayList<HashSet<Integer>> List_of_Sets = new ArrayList<>(n);
while(n-- > 0) List_of_Sets.add(null);
Run Code Online (Sandbox Code Playgroud)

有没有更快的方法来做到这一点?

为了澄清起见,将Arrays.fill()使用数组示例比:

/*
 * initialize a smaller piece of the array and use the System.arraycopy 
 * call to fill in the rest of the array in an expanding binary fashion
 */
public static void bytefill(byte[] array, byte value) {
  int len = array.length;

  if (len > 0){
    array[0] = value;
  }

  //Value of i …
Run Code Online (Sandbox Code Playgroud)

java performance arraylist

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

可以优化动态对象创建的代码吗?

我有一个接受类参数的方法。我需要为任何类型的类创建此类对象的列表。每个类可能有一个带有不同数量参数的构造函数。

这就是我到目前为止所取得的成果。它有效,但显然它不够通用。这段代码有更通用的代码吗?

public List<Object> convertSeparatedListToJsonList(String pipedStr, String separatorRegex, Class c){

        try {

                Class<?> cCtor = Class.forName(c.getTypeName());

                List<String> valuesList = Stream.of(pipedStr.split(separatorRegex)).map(String::trim).collect(Collectors.toList());
                int valuesNumber = valuesList.size();

                switch (valuesNumber) {
                    case 1 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class);
                        return List.of(ctor.newInstance(valuesList.get(0)));
                    }
                    case 2 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class, String.class);
                        return List.of(ctor.newInstance(valuesList.get(0), valuesList.get(1)));
                    }
                    case 4 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class, String.class, String.class, String.class);
                        return List.of(ctor.newInstance(valuesList.get(0), valuesList.get(1), valuesList.get(2), valuesList.get(3)));
                    }
                    case 5 -> {
                        Constructor<?> ctor = cCtor.getConstructor(String.class, String.class, String.class, String.class, String.class); …
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

java ×4

arrays ×2

performance ×2

arraylist ×1

boolean ×1

c ×1

memset ×1

variables ×1