在这对Java List中怎么随机取数做一个分享:
其实List中没有现成随机取记录的方法,但在Collections中有个shuffle方法可以实现“洗牌”的效果,所谓“洗牌”就是把List中的元素打乱重新排序。重新排列后的List再从头取需要发记录数,就相等于完成了随机取数的效果,见代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TTL {
public static void main(String[] str) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
list.add(i);
}
System.out.println("orginal List:");
for (Integer s : list) {
System.out.print(s);
}
System.out.println();
Collections.shuffle(list);
System.out.println("after shuffle List:");
for (Integer s : list) {
System.out.print(s);
}
}
}
输出结果:
orginal List:
01234
after shuffle List:
32041
shuffle的原理就是用了Collection中的swap,对List中的每一个元素实现随机换位一次,这也就意味着这种随机方式不适合对List内中很多记录的随机。
原文:
http://blog.csdn.net/muyangk/article/details/6122533
分享到:
相关推荐
"javaList用法详解" Java 中的 List 用法是指在 Java 编程语言中使用 List 集合的方法和实现方式。List 集合是 Java 中的一种常用的集合类型,提供了许多实用的方法和实现类,下面将详细介绍 List 用法和实例。 ...
3. **退出登录**:退出通常意味着清空当前用户的登录状态,这不涉及List的操作,但如果需要记录登出事件,可以将登出信息作为一个日志项添加到List中。 接下来,日志的添加、删除和修改也是List集合的重要应用场景...
在"java超市管理list框架"中,可能会使用ArrayList,因为它提供了快速的随机访问,适合于需要频繁查找和遍历的场景。ArrayList通过动态调整其内部数组的大小来适应元素的增加。另一方面,如果对插入和删除操作的效率...
listFields.java 利用反射机制获取成员属性列表 listMethods.java 利用反射机制获取成员方法列表 loadClass.java 动态装载一个类 Shape.java 一个用于测试的简单类 useArray1.java 用反射机制使用数组示例1 ...
首先,List接口是Java集合框架中用于存储有序元素的接口,它允许元素重复,并且可以通过索引来访问元素。ArrayList和LinkedList是List接口的两种常见实现。ArrayList基于动态数组,适合于频繁的随机访问,因为它的...
在Java编程中,随机抽取指定范围内的不重复数字是一项常见的需求,特别是在模拟、测试或者游戏开发等场景中。本篇将详细介绍两种常见的实现方法:使用ArrayList和使用数组。 首先,我们来看使用ArrayList的实现方式...
在这个游戏中,计算机随机选择一个1到100之间的整数,然后玩家通过输入猜测的数字来尝试找出这个数。接下来,我们将深入探讨如何实现这个游戏以及相关知识点。 首先,我们需要了解Java的基本语法和数据类型。在这个...
java8 源码 List相关实现类的源码解析(JDK1.8) ...通过modCount的值来判断是否多线程同时操作,modCount用来记录List修改的次数:每修改一次(添加/删除等操作),将modCount+1 LinkedList 继承关系: LinkedLis
Java中的数组分割或List操作可以实现这一功能。 3. **出牌**:出牌逻辑是游戏的核心,涉及到比较大小、判断合法性和记录出牌状态等。这需要编写一系列的判断条件和方法,可能需要用到栈或队列的数据结构来管理玩家...
这两个类都是`java.util.List`接口的实现,提供了动态数组和链表数据结构。`ArrayList`适合随机访问,而`LinkedList`在插入和删除元素时表现更优。 2. **`java.util.Arrays`**: 提供了各种操作数组的方法,如...
2. **`java.util.Collections`**:它是针对集合框架的工具类,提供了对List、Set、Map等各种集合的操作,如排序(`sort()`)、填充(`fill()`)和集合转换(`copy()`)等。 3. **`java.lang.Math`**:提供了各种...
在实际应用中,抽奖小程序可能还需要处理一些其他需求,例如防止重复中奖、设置每个奖项的概率分布、记录抽奖结果等。这些可以通过数据结构(如List、Set或Map)和算法(如概率权重选择)来实现。 标签中的“实用...
Java集合框架是Java编程语言中的一个核心特性,它提供了一种高效、灵活的方式来存储和操作对象数组。在Java中,集合被分为两个主要接口:Collection和Map。本篇将深入探讨Collection接口及其子接口,包括List和Set,...
- 它们通常用于表示数据库记录或其他需要存储的数据结构。 - JavaBean遵循以下规范: - 包含一组私有属性。 - 提供公共的getter和setter方法来访问这些属性。 - 如果有布尔类型的属性,应使用`isXXX`而不是`...
例如,用List存储玩家的得分历史,用Map记录游戏道具和其属性,用Set存储当前屏幕上的活跃对象等。 7. **并发处理**:Java集合框架也支持线程安全的实现,如ConcurrentHashMap和CopyOnWriteArrayList,这在多线程...
Java爬虫需要处理这些问题,可能需要随机设置User-Agent,或者使用IP代理池来避免被封禁。 6. **数据存储**:抓取的数据通常需要存储起来,可能涉及数据库操作(如JDBC、JPA)或文件系统操作。有时,也会用到NoSQL...
【标题】"Java后台输出的抽奖系统"是一个简单的程序,主要使用Java编程语言实现,它并不依赖数据库存储用户数据,而是采用静态变量来暂时保存用户的参与信息。这种设计方式适用于小型示例或临时性的抽奖活动,因为...
回答思路:集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList)。此外,Map接口及其实现类(如HashMap、TreeMap)用于存储键值对。 7. **问题7:Java中的...
程序计数器记录了线程执行的字节码指令地址,当线程执行Java方法时,程序计数器记录的是正在执行的虚拟机字节码指令的地址;虚拟机栈存储局部变量表、操作数栈、动态链接、方法出口等信息,每个方法执行时都会创建一...