Set集合 案例 不重复的随机数
有勇气的牛排
1173
Java
2021-08-24 00:31:12
1 描述
需求:编写一个程序,获取10个1-20之间的随机数,要求随机数不能重复,并在控制台输出
思路:
1、创建Set集合
2、创建随机数对象
3、判断集合的长度是不是小于10
(1)是:产生一个随机数,添加到集合
(2)否:回到3继续
4、遍历集合
2 实战演练
import java.util.HashSet;
import java.util.Random;
import java.util.TreeSet;
public class SetDemo1 {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<Integer>();
Random r = new Random();
while (set.size() < 10) {
int number = r.nextInt(20) + 1;
set.add(number);
}
for (Integer i : set) {
System.out.println(i);
}
}
}
<h2><a id="1__0"></a>1 描述</h2>
<p>需求:编写一个程序,获取10个1-20之间的随机数,要求随机数不能重复,并在控制台输出</p>
<p>思路:</p>
<p>1、创建Set集合</p>
<p>2、创建随机数对象</p>
<p>3、判断集合的长度是不是小于10</p>
<p>(1)是:产生一个随机数,添加到集合</p>
<p>(2)否:回到3继续</p>
<p>4、遍历集合</p>
<h2><a id="2__19"></a>2 实战演练</h2>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">import</span> java.util.HashSet;
<span class="hljs-keyword">import</span> java.util.Random;
<span class="hljs-keyword">import</span> java.util.TreeSet;
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">SetDemo1</span> {
<span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title function_">main</span><span class="hljs-params">(String[] args)</span> {
<span class="hljs-comment">// 方案一:创建Set集合 --- HashSet 不排序</span>
<span class="hljs-comment">// HashSet<Integer> set = new HashSet<Integer>();</span>
<span class="hljs-comment">// 方案二:TreeSet 结果排序</span>
TreeSet<Integer> set = <span class="hljs-keyword">new</span> <span class="hljs-title class_">TreeSet</span><Integer>();
<span class="hljs-comment">// 创建随机数对象</span>
<span class="hljs-type">Random</span> <span class="hljs-variable">r</span> <span class="hljs-operator">=</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">Random</span>();
<span class="hljs-comment">// 判断集合的长度是不是小于10</span>
<span class="hljs-keyword">while</span> (set.size() < <span class="hljs-number">10</span>) {
<span class="hljs-comment">// 产生随机数 添加到集合</span>
<span class="hljs-type">int</span> <span class="hljs-variable">number</span> <span class="hljs-operator">=</span> r.nextInt(<span class="hljs-number">20</span>) + <span class="hljs-number">1</span>;
set.add(number);
}
<span class="hljs-comment">// 遍历集合</span>
<span class="hljs-keyword">for</span> (Integer i : set) {
System.out.println(i);
}
}
}
</code></div></pre>
留言