我有一个ArrayList,里面有17,000个单词.我只需要在列表中添加一个单词,如果它还没有,我需要保留列表的排序顺序.即,我需要将其放入按字母顺序排列的正确位置.
我不知道如何找到插入它的正确位置.我正在使用二进制搜索来查找该单词是否已经在列表中,如果它在那里则返回索引,如果不是则返回-1.我打算使用ArrayList.add(int index,E element)将其放入.
我正在制作一个适合球进入盒子的功能.计算可以放在盒子每一侧的球数的代码如下.假设球如同立方体一样装配在一起.我知道这不是最佳方式,只是顺其自然.
对我来说问题是,虽然我得到了像4.0000000*4.0000000*2.000000这样的数字,但是产品是31而不是32.产品是什么?
另外两件事,这个错误只发生在达到最佳边长时; 例如,边长为12.2,箱厚为.1,球半径为1.5.这导致正好4个球适合那一侧.如果我不作为int转换,它可以工作但如果我作为int转换,我得到上述错误(31而不是32).此外,如果边长是最佳的,则打印线运行一次,但如果边长不是,则运行两次.我不知道这意味着什么.
double ballsFit(double r, double l, double w, double h, double boxthick)
{
double ballsInL, ballsInW, ballsInH;
int ballsinbox;
ballsInL= (int)((l-(2*boxthick))/(r*2));
ballsInW= (int)((w-(2*boxthick))/(r*2));
ballsInH= (int)((h-(2*boxthick))/(r*2));
ballsinbox=(ballsInL*ballsInW*ballsInH);
printf("LENGTH=%f\nWidth=%f\nHight=%f\nBALLS=%d\n", ballsInL, ballsInW, ballsInH, ballsinbox);
return ballsinbox;
}
Run Code Online (Sandbox Code Playgroud)