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)
哪一个更有效率,为什么?是否在硬件中有任何特殊指令来进行块级初始化.
在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中是否有一个方法可以将布尔数组中的所有值设置为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) 我想要一个包含 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) 我有一个接受类参数的方法。我需要为任何类型的类创建此类对象的列表。每个类可能有一个带有不同数量参数的构造函数。
这就是我到目前为止所取得的成果。它有效,但显然它不够通用。这段代码有更通用的代码吗?
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)