我有一个类,它有几个数据结构,其中是一个hashmap.但是我希望hashmap具有默认值,所以我需要预加载它.我怎么做这个因为我不能在对象里面使用put方法?
class Profile
{
HashMap closedAges = new HashMap();
closedAges.put("19");
}
Run Code Online (Sandbox Code Playgroud)
我用它修复了它,但我不得不在对象中使用一个方法.
class Profile
{
HashMap closedAges = loadAges();
HashMap loadAges()
{
HashMap closedAges = new HashMap();
String[] ages = {"19", "46", "54", "56", "83"};
for (String age : ages)
{
closedAges.put(age, false);
}
return closedAges;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个名为 prob 的 txt 文件,其中包含:
6 2 8 3
4 98652
914
143 789
1
527 146
85
1 74 8
7 6 3
Run Code Online (Sandbox Code Playgroud)
每行有 9 个字符,共有 9 行。由于我无法在 c 中创建字符串数组,因此我使用二维数组。小心运行代码,无限循环很常见,并且会打印奇怪的输出。我也很好奇它在哪里停止接收字符串?直到换行?每个“保存”的预期结果:6 2 8 3 或水所包含的行。
#include <stdio.h>
FILE *prob;
main()
{
prob = fopen("prob.txt", "r");
char grid_values[9][9];
char save[9];
int i;
for (i = 0; (fscanf(prob, "%s", save) != EOF); i++)
{
int n;
for (n = 0; n <= 9; n++)
{
grid_values[i][n] = save[n];
printf("%c", grid_values[i][n]);
}
} …Run Code Online (Sandbox Code Playgroud) 为什么这不起作用?
if (condition) stuff; return;
else otherStuff;
Run Code Online (Sandbox Code Playgroud)
或这个
if (condition) stuff; return;
else {otherStuff;}
Run Code Online (Sandbox Code Playgroud)
我可以轻松解决这个问题:
if (condition) {stuff; return;}
else otherStuff;
Run Code Online (Sandbox Code Playgroud)
但我认为if语句阻止整行不排除返回.
所以我在一个地方声明一个变量并初始化它.现在稍后我需要使用它来循环,而它仍然是正的所以我需要减少它.对我来说,使用条件和减量进行循环调用for for但是对于它我们缺少初始化的第一部分.但我不需要初始化任何东西.那么我该如何以一种很好的方式解决这个问题呢.
for (space = space; space > 0; space--)//my first way to do it but ide doesnt like it
Run Code Online (Sandbox Code Playgroud)
第二种方式:
for (; space > 0; space--)//my friend recommended me this way but looks kind weird
Run Code Online (Sandbox Code Playgroud)
有没有更多的方法让我只有一个条件和增量/减量的循环?
PS拼写检查不知道"减量"是一个单词.我很确定它是......
我想在剧院里安排一群4人,这样他们就可以坐在一起,或者让大多数人彼此相邻.我有一个行数组,其中索引表示存储该行中可用席位数的行.如果我使用了排序方法,那么它将对可用的座位进行排序,但是我会丢失它对应的行.显然我可以循环查找我想要的最大座位数量,如果我没有找到,我可以减少我的数量等等但这不是最佳的.
行:1 2 3 4
可用:2 3 1 4
已分拣:4 3 2 1
对应行:4 2 1 3 < - 这就是我想要的
//this is one way to do it but i want a better way
int[] row = {0, 2, 3, 1, 4};
double[] rowDouble = new double[row.length];
for (int i = 0; i < row.length; i++)
{
String rowString = Integer.toString(row[i]) + "." + Integer.toString(i);
rowDouble[i] = Double.valueOf(rowString);
}
Arrays.sort(rowDouble);
String sortedRowString = Arrays.toString(rowDouble);
sortedRowString = sortedRowString.substring(1, sortedRowString.length()-1);
System.out.println(sortedRowString);
String[] finalSortedRowString …Run Code Online (Sandbox Code Playgroud) 我很惊讶我没有在任何地方找到答案.我想用1..100填充100的int数组.填充是一种很好的方法,但它不会在每个回合中增加值.它显然是如何用循环做的,但我想避免这种情况,因为我的最大值非常高.有没有api方法可以为我做这个?
我正在完成hackerrank的项目euler问题#1.我写了一个暴力解决方案来检查我的答案.它似乎是正确的,除了输入10 ^ 9.有人告诉我,正确的答案是:
233333333166666668
我要回来了:
233333333166666680
n = 1000000000
sum_of_multiples_3 = int((int((n-1)/3.0)+1) * (int((n-1)/3.0)/2.0) * 3)
sum_of_multiples_5 = int((int((n-1)/5.0)+1) * (int((n-1)/5.0)/2.0) * 5)
sum_of_multiples_15 = int((int((n-1)/15.0)+1) * (int((n-1)/15.0)/2.0) * 15)
print(sum_of_multiples_3 + sum_of_multiples_5 - sum_of_multiples_15)
Run Code Online (Sandbox Code Playgroud)