// 从List中随机出count个对象
private List<Object> randomTopic(List<Object> list, int count) {
// 创建一个长度为count(count<=list)的数组,用于存随机数
int[] a = new int[count];
// 利于此数组产生随机数
int[] b = new int[list.size()];
int size = list.size();
// 取样填充至数组a满
for (int i = 0; i < count; i++) {
int num = (int) (Math.random() * size); // [0,size)
int where = -1;
for (int j = 0; j < b.length; j++) {
if (b[j] != -1) {
where++;
if (where == num) {
b[j] = -1;
a[i] = j;
}
}
}
size = size - 1;
}
// a填满后 将数据加载到rslist
List<Object> rslist = new ArrayList<Object>();
for (int i = 0; i < count; i++) {
Object df = (Object) list.get(a[i]);
rslist.add(df);
}
return rslist;
}
分享到:
相关推荐
在Java编程中,有时我们需要从一个List集合中随机地抽取特定数量的元素。这个过程可以用于模拟随机选择、创建测试数据或实现某些算法中的随机行为。以下是对标题和描述中涉及的知识点的详细说明。 首先,`List`是...
本文将深入探讨如何从List对象中获取数据,包括使用不同类型的List实现以及从List中提取特定值的方法。我们将通过示例代码来理解这些概念,同时也会涉及到与List相关的常见操作。 ### 一、List的基本概念 在Java中...
总结来说,"c# 数据组合 从一组数据中 返回组合的和等于某个值 的所有组合"这个问题可以通过递归和回溯技术在C#中实现。这个过程涉及到组合数学、算法设计以及递归编程,是计算机科学中的基础概念,对于提升编程能力...
要解决这个问题,首先需要明确几个关键参数: 1. **S**:待拆分的整数。 2. **N**:拆分后的整数个数。 3. **min**:拆分后每个整数的最小值。 4. **max**:拆分后每个整数的最大值。 算法的核心思想是通过递归的...
我们将讨论以下几个关键知识点: 1. **C#编程基础**:C#是微软公司推出的一种面向对象的编程语言,广泛应用于Windows桌面应用、游戏开发、Web服务等。VS2010是开发C#程序的集成开发环境(IDE),提供了丰富的功能,...
首先,我们需要明确几个关键点: 1. **红包总数**:即红包的数量,决定有多少人可以领取。 2. **红包总额**:所有红包金额之和,这是固定的。 3. **最小金额**:每个用户领取的红包金额不能低于这个值,例如0.01元...
这样就得到了一个随机排列的列表。 - **遍历并点名**:打乱顺序后,我们只需按照新的顺序逐个读取名字即可完成点名。在C#中,可以使用`foreach`循环来遍历`List<string>`。 4. **代码实现**:在C#中,可以创建一...
在程序的实现过程中,我们需要考虑以下几个关键点: 1. 数据输入:用户如何输入参与者的名单?可以提供一个文本框让用户直接输入,或者设计一个导入功能,允许用户从文件中批量导入名单。 2. 错误处理:程序需要...
程序设计上,通常包括以下几个关键部分: 1. 数据存储:点名名单需要事先输入并存储。开发者可以选择文本文件、数据库或者内存数据结构(如List)来存储学生姓名。考虑到简单易用,文本文件可能是最佳选择,因为它...
这个问题的主要目标是从给定的n个数组中找出所有的可能排列组合。Java作为一种强大的编程语言,提供了丰富的工具和方法来解决此类问题。下面我们将深入探讨这个问题的解决方案、相关算法以及Java中的实现细节。 ...
该程序具有以下几个优点: * 随机抽取学生信息,解决了教学场景中的实际需求。 * 使用了JAVA语言的多种特性,如数组、集合、随机数生成等,实现了一个功能强大且易于使用的随机抽取系统。 * 程序的设计思路清晰,...
此外,List接口还有几个子接口和实现类,如ArrayList、LinkedList、Vector等,它们各有特点和适用场景。ArrayList基于动态数组实现,适合随机访问但插入和删除速度慢;LinkedList基于双向链表,插入和删除速度快但...
在这个随机点名程序中,可能会包含以下几个关键部分: 1. **数据存储**:学生的姓名通常会存储在一个数组或者列表中,VB提供了多种数据结构,如Array、ArrayList或List(Of T)等,用于存放这些信息。例如,可以定义...
接着,我们需要实现几个关键函数: 1. **初始化**:创建一个只有头节点的跳表,所有节点都指向NULL。 2. **插入**:根据元素的随机高度创建新节点,并调整各层的链接关系。插入过程中需要用到概率算法,如抛硬币决定...
1. **Method1 - 基于索引选择**:我们可以在0到9的范围内生成随机索引,然后将选取的元素添加到结果列表,同时将已选取的元素从原始数组中移除,确保不会再次选取。 2. **Method2 - 位运算法**:这种方法通常用于...
总结来说,实现“随机更换窗体界面的主题”主要涉及以下几个步骤: 1. 定义主题类,包含所需的颜色属性。 2. 创建多个主题实例并存储在一个列表中。 3. 在适当的时间点(如窗体加载事件)随机选择一个主题,并将其...
程序的实现可能包括以下几个步骤: 1. 数据准备:存储参与点名的人员名单。这可以通过数组、列表或者其他数据结构实现,如List,将所有名字存储其中。 2. 创建Random对象:实例化Random类,作为生成随机数的来源。...
jdk7中list的一些功能用起来比较繁琐,比如去重,得通过好几层for循环遍历判断得到,而jdk8 中lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求和、最值、排序、去重。跟之前的传统写法对比,能少...
在选择合适的集合类时,需要考虑以下几个方面: - **性能需求**:是否需要快速访问、插入或删除? - **元素排序**:是否需要元素排序? - **元素重复性**:是否允许重复元素? 通过对比不同集合类的特点和使用场景...