`

【转】Java List 随机取记录

阅读更多
在这对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用法

    "javaList用法详解" Java 中的 List 用法是指在 Java 编程语言中使用 List 集合的方法和实现方式。List 集合是 Java 中的一种常用的集合类型,提供了许多实用的方法和实现类,下面将详细介绍 List 用法和实例。 ...

    Java List集合的应用.rar

    3. **退出登录**:退出通常意味着清空当前用户的登录状态,这不涉及List的操作,但如果需要记录登出事件,可以将登出信息作为一个日志项添加到List中。 接下来,日志的添加、删除和修改也是List集合的重要应用场景...

    java超市管理list框架

    在"java超市管理list框架"中,可能会使用ArrayList,因为它提供了快速的随机访问,适合于需要频繁查找和遍历的场景。ArrayList通过动态调整其内部数组的大小来适应元素的增加。另一方面,如果对插入和删除操作的效率...

    Java开发技术大全(500个源代码).

    listFields.java 利用反射机制获取成员属性列表 listMethods.java 利用反射机制获取成员方法列表 loadClass.java 动态装载一个类 Shape.java 一个用于测试的简单类 useArray1.java 用反射机制使用数组示例1 ...

    java 集合(list-queue-set)学习

    首先,List接口是Java集合框架中用于存储有序元素的接口,它允许元素重复,并且可以通过索引来访问元素。ArrayList和LinkedList是List接口的两种常见实现。ArrayList基于动态数组,适合于频繁的随机访问,因为它的...

    java随机抽取指定范围不重复的数字

    在Java编程中,随机抽取指定范围内的不重复数字是一项常见的需求,特别是在模拟、测试或者游戏开发等场景中。本篇将详细介绍两种常见的实现方法:使用ArrayList和使用数组。 首先,我们来看使用ArrayList的实现方式...

    java GuessNumber给你一个1至100之间的整数,请猜测这个数java

    在这个游戏中,计算机随机选择一个1到100之间的整数,然后玩家通过输入猜测的数字来尝试找出这个数。接下来,我们将深入探讨如何实现这个游戏以及相关知识点。 首先,我们需要了解Java的基本语法和数据类型。在这个...

    java8源码-csn-list:ArrayList、LinkedList、Vector、Stack源码分析

    java8 源码 List相关实现类的源码解析(JDK1.8) ...通过modCount的值来判断是否多线程同时操作,modCount用来记录List修改的次数:每修改一次(添加/删除等操作),将modCount+1 LinkedList 继承关系: LinkedLis

    斗地主程序Java源码

    Java中的数组分割或List操作可以实现这一功能。 3. **出牌**:出牌逻辑是游戏的核心,涉及到比较大小、判断合法性和记录出牌状态等。这需要编写一系列的判断条件和方法,可能需要用到栈或队列的数据结构来管理玩家...

    JAVA开发常用工具类

    这两个类都是`java.util.List`接口的实现,提供了动态数组和链表数据结构。`ArrayList`适合随机访问,而`LinkedList`在插入和删除元素时表现更优。 2. **`java.util.Arrays`**: 提供了各种操作数组的方法,如...

    java工具类

    2. **`java.util.Collections`**:它是针对集合框架的工具类,提供了对List、Set、Map等各种集合的操作,如排序(`sort()`)、填充(`fill()`)和集合转换(`copy()`)等。 3. **`java.lang.Math`**:提供了各种...

    java做的抽奖小程序

    在实际应用中,抽奖小程序可能还需要处理一些其他需求,例如防止重复中奖、设置每个奖项的概率分布、记录抽奖结果等。这些可以通过数据结构(如List、Set或Map)和算法(如概率权重选择)来实现。 标签中的“实用...

    JAVA上百实例源码以及开源项目源代码

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

    Java集合概述与实例分析

    Java集合框架是Java编程语言中的一个核心特性,它提供了一种高效、灵活的方式来存储和操作对象数组。在Java中,集合被分为两个主要接口:Collection和Map。本篇将深入探讨Collection接口及其子接口,包括List和Set,...

    java基础重点难点

    - 它们通常用于表示数据库记录或其他需要存储的数据结构。 - JavaBean遵循以下规范: - 包含一组私有属性。 - 提供公共的getter和setter方法来访问这些属性。 - 如果有布尔类型的属性,应使用`isXXX`而不是`...

    java 特效 集合

    例如,用List存储玩家的得分历史,用Map记录游戏道具和其属性,用Set存储当前屏幕上的活跃对象等。 7. **并发处理**:Java集合框架也支持线程安全的实现,如ConcurrentHashMap和CopyOnWriteArrayList,这在多线程...

    java 开发的网页爬虫

    Java爬虫需要处理这些问题,可能需要随机设置User-Agent,或者使用IP代理池来避免被封禁。 6. **数据存储**:抓取的数据通常需要存储起来,可能涉及数据库操作(如JDBC、JPA)或文件系统操作。有时,也会用到NoSQL...

    java 后台输出的 抽奖系统

    【标题】"Java后台输出的抽奖系统"是一个简单的程序,主要使用Java编程语言实现,它并不依赖数据库存储用户数据,而是采用静态变量来暂时保存用户的参与信息。这种设计方式适用于小型示例或临时性的抽奖活动,因为...

    16个经典面试问题回答思路(Java方面的)

    回答思路:集合框架主要包括接口(如List、Set、Queue)和实现这些接口的类(如ArrayList、HashSet、LinkedList)。此外,Map接口及其实现类(如HashMap、TreeMap)用于存储键值对。 7. **问题7:Java中的...

Global site tag (gtag.js) - Google Analytics