`
hehaibo
  • 浏览: 416269 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java随机从数组中取出不重复的元素

 
阅读更多
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class TestRandomArray {

	public static void main(String[] args) {
		String [] ids=new String[]{"a","c","b","e","f","g","h","k","x","i","p","3","4","1","m","n"};
		Random r=new Random();
		String strarray[]=new String[10];
		int index=0;
		for(int i=0;i<10;i++)
		{
			//刚开始从数组中随机抽取一个
			//而后将抽取的元素后面的元素向前推进到随机的位置[index位置]
			//随着循环的继续,逐渐抛弃后面的元素
			index=r.nextInt(ids.length-i);
			strarray[i]=ids[index];
			//元素向前推进到随机[index]的位置
			for(int j=index;j<ids.length-i-1;j++){
				ids[j]=ids[j+1];
			}
		}
		Set<String> set=new HashSet<String>();
		for (String string : strarray) {
			System.out.print(string+" ");
			set.add(string);
		}
		System.out.println();
		System.out.println(set+","+set.size());
	}
}

 

分享到:
评论

相关推荐

    从n个数组中取出所有排列组合(Java实现)

    总结来说,从n个数组中取出所有排列组合的Java实现涉及到递归算法、回溯法以及数据结构的操作。理解这些概念并能够熟练运用是成为一名优秀程序员的关键。通过这个例子,我们可以看到如何利用Java的灵活性和表达力来...

    4种思路随机乱序输出数组元素

    本篇文章将深入探讨如何在Java中实现“随机不重复输出数组元素”的四种思路,这对于诸如模拟抽奖、点名等实际应用场景非常有用。 1. **基于Math.random()的解决方案** Math.random()函数可以生成0.0到1.0之间的...

    Javascript从数组中随机取出不同元素的两种方法

    在JavaScript编程中,有时我们需要从一个数组中随机抽取不同的元素,比如用于模拟随机事件或创建随机测试数据。这里我们将详细探讨两种实现这一功能的方法:常规算法和洗牌算法。 一、常规算法 常规算法的基本思路...

    java随机抽取指定范围内不重复的n个数

    本文将详细介绍如何在Java中生成随机数以及如何随机抽取指定范围内不重复的n个数。 首先,Java提供了多种生成随机数的方法: 1. 使用`Math.random()`:这是最基础的生成随机数的方法,它返回一个0.0到1.0之间...

    java利用数组随机抽取幸运观众

    在Java编程语言中,随机抽取幸运观众可以通过数组来实现,这是编程中常见的一个操作,用于从一组数据中随机选择一个或多个数据项。以下是对【标题】和【描述】中所述知识点的详细说明: ### 知识点一:数组的定义和...

    java list随机抽取元素的案例

    在Java编程中,有时我们需要从一个List集合中随机地抽取特定数量的元素。这个过程可以用于模拟随机选择、创建测试数据或实现某些算法中的随机行为。以下是对标题和描述中涉及的知识点的详细说明。 首先,`List`是...

    Java实现生成n个不重复的随机数

    * 根据min和max随机生成count个不重复的随机数组 * @param min * @param max * @param count * @return int[] */ public int[] getRandoms(int min, int max, int count){ int[] randoms = new int[count]; ...

    Java获取随机不重复的数得值

    假如我有一个数组: ...  我需要从中随机抽取2个数 不能重复抽取,我会用这个方法  public void getValue(ArrayList&lt;Integer&gt; mArrayList){  Random mRandom = new Random();  int a = mRandom.

    0-99的不重复随机数

    - **随机索引**:创建一个0到99的数组,然后通过生成0到98的随机索引来访问和取出元素,取出后将该位置的元素置为无效,防止重复取到。 3. **代码实现**:以Python为例,一个简洁的实现可能如下: ```python ...

    javascript获取不重复的随机数的方法比较

    [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 不重复的随机数方案2:297毫秒 但是方案1采用了slice方法,此方法重新生成数组,会大量占用内存和cpu运算, 效率很低,所以改良一下,从原始数组取出一个数, 然后...

    Java List简介_动力节点Java学院整理

    - `subList(int fromIndex, int toIndex)`:返回一个新的 List,包含原始 List 中从 fromIndex(包括)到 toIndex(不包括)的元素。 5. **List 迭代器**: List 提供了一个名为 `ListIterator` 的迭代器子接口,...

    Java 实例 - 集合中添加不同类型元素源代码+详细指导教程.zip

    在取出集合中的元素时,通常需要进行类型转换。需要注意的是,如果尝试将非预期类型的对象转换为目标类型,将会抛出`ClassCastException`。因此,访问集合元素前,应先检查其实际类型。 9. **源代码分析** 包含的...

    一个十分优秀的抽签系统

    3. **选择并移除元素**:根据生成的随机索引,从数组中取出对应的元素,将其作为抽中的结果。为了确保不重复,可以将该元素从数组中移除。在某些语言中,如Python,可以直接使用切片操作完成此步骤。 4. **循环抽签...

    JAVA算法

    Java中的`LinkedList`类实现了`List`接口,提供了高效的插入和删除操作,但在随机访问元素时效率较低。 四、递归 递归是一种函数或过程调用自身的技术,通常用于解决需要多次重复相同步骤的问题。在算法中,递归常...

    java趣味小程序

    - **需求分析**:模拟彩票号码生成过程,从1到33的数字中随机选取7个不重复的数字作为开奖结果。 - **技术实现**: - 定义长度为7的整型数组存储开奖结果。 - 使用`Random`类生成随机数。 - 采用循环结构确保所选...

    随机产生验证码代码块

    通过循环随机选择字符数组中的字符,确保生成的验证码不重复。 5. 当生成的验证码长度达到四位时结束循环。 6. 返回最终生成的四位验证码。 #### 三、关键技术点 1. **`Random` 类**:用于生成随机数,是 Java ...

    java基础之集合面试题共4页.pdf.zip

    Set接口不允许重复元素,如HashSet和TreeSet。 2. **Map接口**:不同于List和Set,Map接口存储键值对,如HashMap、TreeMap和ConcurrentHashMap。Map中的键是唯一的,而值可以重复。 3. **ArrayList与LinkedList的...

    随机抽奖源代码

    3. **选择赢家**:根据生成的随机索引,从参与者列表中取出对应的参与者作为获胜者。如果希望有多个奖项,可以重复此步骤,但需注意排除已中奖的参与者,以防止重复。 4. **公正性验证**:为了增加透明度,可以提供...

    Java集合常见面试题总结(上)-JavaGuide面经思维导图总结

    - 特点:只有当延迟到期时才能从队列中取出元素。 #### 三、如何选用集合? 选择合适的集合类型取决于具体的应用场景和需求: - 当需要快速随机访问元素时,选择`ArrayList`。 - 当需要频繁插入或删除元素时,...

    Java案例之随机验证码功能实现实例

    该资源主要介绍了Java实现随机验证码功能的实例,通过生成四位不重复的验证码,演示了Java中数组、Random函数和字符串操作的使用。 知识点一:数组 * 数组的定义:在Java中,数组可以通过以下方式定义:char [] ...

Global site tag (gtag.js) - Google Analytics