1.为什么 short s = s + 1;是错误的,而short s+=1是正确的。2.实现一副扑克牌洗牌的功能。如果无法书写完整的代码,可以用文字描述出自己的实现思路。
解决方案 »
- 我用java写了一个网络接收图片的程序,但为什么图片总是显示为空的?各位大侠帮小弟看看吧
- 求解ArrayList<UserGameInfo>转化为xml文件输出?
- 求解JApplet 中的update()方法为何没有调用?
- [公告]群2920159大学生JAVA讨论群人满了,可以进我另一个新开的群,群号2920182
- 有没有人看过“java2核心技术” 我看的是jdk1.3版的,我想知道在1.4,1.5推出后,这本书不要看的,或者说过时的是哪些章节?
- 高分请教Array和ArrayList数组查找/排序执行效率问题讨论
- jbuilder 8中的数据库操作的问题。
- interface体系和class体系的关系
- 一个HTML的问题,请帮忙!
- 线程同步的输出的问题,在线等
- Java大虾们进来指导指导小弟啊~
- 背景颜色
而s+=1的意思与s = s+1不同,s=s+1这句先执行s+1然后把结果赋给s,由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换
所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符,在解析时候s+=1就等价于s = (short)(s+1),翻番来讲就是
s+=1 <=> s = (s的类型)(s+1)
2.http://topic.csdn.net/t/20061016/09/5084304.html
希望会给你带来帮助!
short s+=1相当于short s=(short)(s+1)所以不会有异常。
用一个长度为54的数组b【54】来存放这54张牌;
用随机函数产生0到53共54个数:
第一次随机产生0到53 54个数中的一个数i,将b【i】交换到b【53】;
第二次随机产生0到52 53个数中的一个j ,将b【j】与b【52】交换;
以此类推
用循环实现
使用默认随机源对指定列表进行置换。所有置换发生的可能性都是大致相等的。
前面描述中使用了不确定的词“大致”,因为随机源只是大致上独立选择位的无偏源。如果它是一个随机选择位的最佳源,那么算法将完全一致的选择置换。此实现向后遍历列表,从最后一个元素一直到第二个元素,将随机选择的元素重复交换到“当前位置”。元素是从列表的一部分随机选择的,该部分列表从第一个元素一直到当前位置(包括)。此方法以线性时间运行。如果指定列表没有实现 RandomAccess 接口并且是一个大型列表,则此实现在改组列表前将指定列表转储到数组中,并将改组后的数组转储回列表中。这避免了二次行为,该行为是原地改组一个“有序访问”列表引起的。参数:
list - 要改组的列表。
抛出:
UnsupportedOperationException - 如果指定列表或其列表迭代器不支持 set 操作。
shufflepublic static void shuffle(List<?> list,
Random rnd)
使用指定的随机源对指定列表进行置换。所有置换发生的可能性都是相等的,假定随机源是公平的。
此实现向后遍历列表,从最后一个元素一直到第二个元素,将随机选择的元素重复交换到“当前位置”。元素是从列表的一部分随机选择的,该部分列表从第一个元素一直到当前位置(包括)。此方法以线性时间运行。如果指定列表没有实现 RandomAccess 接口并且是一个大型列表,则此实现在改组列表前将指定列表转储到一个数组中,并将改组后的数组转储回列表中。这避免了二次行为,该行为是原地改组一个“有序访问”列表引起的。参数:
list - 要改组的列表。
rnd - 用来改组列表的随机源。
抛出:
UnsupportedOperationException - 如果指定列表或其列表迭代器不支持 set 操作。