Java 创建一个没有循环的数字数组?
好的,我正在使用JavaMail库,我正在尝试获取某些消息编号。我想高效地完成这项工作,而不必在某些事情上重复两次……无论如何,我要问你的问题是:如何创建一个从索引Java 创建一个没有循环的数字数组?,java,arrays,loops,jakarta-mail,Java,Arrays,Loops,Jakarta Mail,好的,我正在使用JavaMail库,我正在尝试获取某些消息编号。我想高效地完成这项工作,而不必在某些事情上重复两次……无论如何,我要问你的问题是:如何创建一个从索引x开始并在索引x-11结束的数组而不循环?如果你想创建和填充数组,基本上有三个选项: int[] myArray = new int[] {x, x-1, x-2, x-3, x-4, x-5, x-6, x-7, x-8, x-9, x-10, x-11}; 显式写入值:int[]nums=newint[]{0,1,2,3,4,…
x
开始并在索引x-11
结束的数组而不循环?如果你想创建和填充数组,基本上有三个选项:
int[] myArray = new int[] {x, x-1, x-2, x-3, x-4, x-5, x-6, x-7, x-8, x-9, x-10, x-11};
int[]nums=newint[]{0,1,2,3,4,…}
for(inti=0;i<10;i++){nums[i]=i;}
不过,我真的不明白为什么您不想使用循环,尤其是对于这样的小事。除了显式声明所有索引之外,没有其他方法了吗?您不需要使用循环来创建int数组;)<代码>int[]数组=新int[11]如果您只想在一个简单的数组中存储11个int值,则不必关心效率。真正地使用loop.JavaMail有一个选项
Folder.getMessages(int[]数组)
,它有一个选项来获取单个消息。现在哪一个更有效?1.循环遍历并获取每条消息2.循环遍历,生成要获取的消息numebr数组,然后调用getMessages()。谢谢你的帮助!如果API提供批量获取以及逐项获取,那么与第一个API相比,几乎总是更有效的调用。设想一个后台数据库:在一次选择中获取11项比在11次选择操作中获取11项更快。还有一个getMessages方法,它获取开始和结束消息编号,并返回消息对象数组。如果要获取的消息编号不是连续的,那么最好一次获取一条消息,因为其他方法在内部都是这样做的。
int[] nums = new int[12];
nums = populate(0, x, nums);
private int[] populate(int index, int x, int[] nums) {
if (nums.length >= index) {
return nums;
} else {
nums[index] = x - index; // x-0 through x-11
return populate(index+1, x, nums);
}
}