在网上搜的一些判断同一数组内是否有相同数值的例子,发现全有问题,故自己写了个,如若该代码有问题,请联系我。
// 测试抽奖码是否会重复
public static void main(String[] args) {
Integer[] arry = new Integer[] { 3555, 7531, 1205, 8126, 5673, 2173, 7078, 4048, 4261, 8687, 2931, 6411, 2843,
2978, 7309, 7106, 5287, 1635, 6552, 9771, 1897, 4193, 3254, 3403, 3559, 5585, 7759, 7683, 5265, 6370,
3150, 4543, 9481, 6369, 6654, 5230, 6767, 6076, 9880, 7581, 2858, 9808, 4224, 1793, 2049, 5207, 7880,
8366, 3547, 3655, 7155, 5120, 9580, 9420, 2953, 7414, 4365, 2327, 3525, 3076, 6754, 3685, 2507, 8321,
8920, 4553, 4147, 4512, 9671, 2668, 5387, 8384, 9591, 5548, 7867, 8523, 6516, 6838, 5812, 8346, 7646,
7590, 8207, 4438, 7003, 6200, 3375, 5924, 6147, 8185, 9241, 4952, 2721, 5156, 9180, 6291, 5367, 9134,
3619, 5914, 5295, 8143, 3172, 7930, 9864, 6861, 9213, 1903, 3452, 6597, 2797, 3863, 5527, 9846, 4057,
6961, 3911, 1792, 2525, 2754, 8571, 4499, 3898, 7914, 6738, 7093, 4240, 9927, 6787, 1367, 3139, 9371,
3778, 8760, 3277, 8812, 6614, 9320, 6218, 9154, 6629, 6063, 3417, 2434, 3393, 9108, 7076, 2712, 9927,
3343, 3262, 9657, 7863, 8409, 2365, 1279, 6211, 2345, 4363, 1709, 4255, 6785, 8497, 5679, 2223, 9669,
3555, 6636, 8100, 7042, 6628, 6590, 5939, 7498, 8422, 5750, 5072, 3997, 1887, 1810, 3609, 3079, 9045,
4871, 4586, 6995, 7395, 1425, 7987, 8711, 7948, 4561, 9820, 1046, 1337, 9933, 9178, 3301, 3111, 3921,
9067, 3990, 4311, 1333, 5070, 6058, 3063, 1340, 8931, 3519, 4833, 1099, 3337, 5685, 9270, 2699, 7796,
8669, 8482, 3640, 1440, 6767, 5864, 1204, 5846, 7939, 9485, 9593, 5503, 9291, 2258, 7317, 7168, 2822,
5392, 2551, 7545, 8743, 5006, 2726, 9752, 5585, 6646, 7966, 6942, 1113, 3264, 8487, 7183, 4648, 6161,
9048, 9981, 1198, 3629, 9643, 7925, 8439, 6192, 6543, 8593, 3354, 6728, 7877, 5773, 6420, 4058, 6149,
8842, 7578, 2589, 7256, 3953, 1748, 2177, 9778, 6241, 7589, 8971, 1716, 7897, 1508, 8478, 9511, 3870,
6313, 8257, 3550, 1946, 7402, 3920, 7697, 9062, 1086, 4304, 4513, 2158, 4711, 8712, 8714 };
int count = 0;
for (int i = 0; i < arry.length; i++) {
for (int j = 0; j < arry.length; j++) {
if (arry[i] == arry[j]) {
count++;
}
}
}
if (count == arry.length) {
System.out.println("并无重复数值!");
}else {
System.out.println("存在重复数值!");
}
}
原理:嵌套for循环
1.第一个for循环即将数组内所有数字提取出来。
2.第二个for循环即再提取出数组内所有数字,后将第一个for循环中提出来的数据的每一个数值对应第二个for循环提出来所有的数值对比判断,如若有相同的即count+1
3.判断count值是否等于arry.length(数组的数值数量),如若相等,即无重复值,反之则否。