`
小网客
  • 浏览: 1244646 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对List随机排序

 
阅读更多

需求:

需要对List<T>进行随机排序。

思路:

实现Comparator接口,随机产生compare返回值

实现:

public class RandomComparator<T> implements Comparator<T> {
	private final int[] seed = {-1, 0, 1 };

	@Override
	public int compare(T o1, T o2) {
		return seed[RandomUtils.nextInt(seed.length)];
	}

}

 用法:

private static void testRandomList() {
	List<String> list = new ArrayList<String>();
	for (int i = 0; i < 20; i++) {
		list.add(String.valueOf(i));
	}
	System.out.println(list);
	Collections.sort(list, new RandomComparator<String>());
	System.out.println(list);
}

 备注:

上述的是个人实现,不建议采用,可以直接采用如下方式实现:

Collections.shuffle(list);  

更多详情参见:http://smallnetvisitor.iteye.com/blog/1866950

0
0
分享到:
评论

相关推荐

    C#对list列表进行随机排序的方法

    总的来说,C#中对list列表进行随机排序的方法主要依赖于随机数生成器,通过生成随机索引并插入元素,可以轻松实现列表的随机化。这种技巧在各种场景中都很有用,比如模拟随机事件、游戏中的随机生成等。希望这个方法...

    java 使用Collections类对List的排序操作

    - **`shuffle(List&lt;?&gt; list)`**:对列表中的元素进行随机排列。 - **`reverse(List&lt;?&gt; list)`**:反转列表中的元素顺序。 除了 `Collections.sort()`,还有 `Collections.reverseOrder()` 方法,它可以创建一个降序...

    Collections 随机排序方法Shuffle源码说明

    在Java编程语言中,`Collections.shuffle()`方法是一个非常实用的工具,它用于对集合中的元素进行随机排序。这个方法在处理各种数据集时,比如游戏中打乱卡片顺序、抽奖程序或者任何需要随机化顺序的场景,都发挥着...

    数组排序 list

    `sort`函数位于`algorithm`头文件中,它可以对任何可迭代的容器(如`list`)进行排序,只要容器中的元素可以比较大小即可。下面是一个基本的示例,展示如何对`list`进行排序: ```cpp #include #include &lt;list&gt; #...

    产生随机字符并排序

    在IT领域,生成随机字符和进行排序是两个基础但重要的概念。随机字符生成常用于密码生成、测试数据填充、加密算法等场景,而排序则在数据处理和算法学习中占据核心地位。 首先,我们来讨论如何生成随机字符。在...

    java 中如何从LIST 对象取值

    `List`的一个主要特点是它可以包含重复元素,并且元素按插入顺序排序。Java标准库提供了几种实现`List`接口的类,如`ArrayList`、`LinkedList`和`Vector`等。其中,`ArrayList`是最常用的实现之一,它基于动态数组...

    惊云JS随机排序程序随机显示信息-每次新闻显示顺序都不一样

    惊云JS随机排序程序是一种JavaScript实现的代码,用于在网页上动态随机展示信息,比如新闻标题。这个程序的核心是让信息每次显示时的顺序都不同,以增加网页的动态性和用户体验。下面我们将深入探讨该程序的工作原理...

    java的list取之方法

    当多个线程同时对`List`进行修改时,可能会抛出`ConcurrentModificationException`异常。为了解决这个问题,可以使用`CopyOnWriteArrayList`或者手动同步代码块。 ### 总结 本篇介绍的是Java中List的基本操作以及...

    Java集合排序及java集合类详解(Collection、List、Map、Set)

    - **ArrayList**:基于动态数组实现,提供随机访问元素的功能,适用于频繁查询而较少修改的情况。 - **LinkedList**:基于双向链表实现,适用于频繁插入和删除元素的场景。 ##### 常用方法 `List`接口除了继承`...

    list_list_STL_C++_

    - **排序**:虽然链表不是随机访问容器,但通过`sort()`可以对链表进行排序,前提是元素类型可比较。 **3. 链表操作的时间复杂性** 由于`list`是链式结构,所以插入和删除操作通常为O(1),这包括在头部和尾部的...

    随机产生一到一百的数并以它进行升和降序排序

    接下来,我们讨论如何对这些随机生成的数字进行排序。Python提供了两种主要的排序方法:`sorted()`函数和列表对象的`sort()`方法。两者都能对序列进行升序排序,但`sort()`直接修改原列表,而`sorted()`返回一个新的...

    C#随机数 排序

    在C#编程中,生成随机数和对其进行排序是常见的任务,尤其在算法实现、游戏开发、数据模拟等场景中。本文将深入探讨如何在C#中生成随机数以及如何对这些随机数进行排序。 首先,让我们了解如何在C#中生成随机数。C#...

    STL 简介,通过讲解STL 中的list来达到深入了解STL的运用

    但同时也有劣势,比如随机访问效率较低,因为list不支持随机访问迭代器。 #### 五、总结 STL中的List是一种非常强大的容器,它提供了灵活的数据管理和高效的插入删除操作。通过对List的学习,开发者不仅可以提高...

    list简单使用

    `List1.dsp`和`List1.dsw`是项目文件,`List1.ncb`是Visual C++的类视图信息文件,`List1.opt`是项目选项文件,`List1.plg`是编译日志,`List1.positions`记录了窗口位置,`ReadMe.txt`可能是对项目的简单说明。...

    C++中list用法

    - `sort()`:对list中的元素进行排序。 5. **容量** - `size()`:返回list中元素的数量。 - `max_size()`:返回list可以存储的最大元素数量。 #### 实例代码分析 以下是一个关于如何使用`list`容器的示例代码:...

    c++ stl list总结

    例如,`sort()`可以对链表进行排序,而`splice()`可以合并两个`list`。 5. **内存管理** `list`自动管理其内部节点的内存,当元素被删除时,相应的节点也会被销毁。这使得`list`对于频繁的插入和删除操作非常有效...

    List用法汇总.zip

    - Java 中,`Collections.sort()` 可对 `List` 进行排序,但需确保元素是可比较的: ```java Collections.sort(myList); ``` - Python 的 `list` 支持 `sort()` 方法,对于自定义对象需要提供比较规则: ```...

    list遍历集合源码

    此外,List接口还有其他一些方法,如`contains(Object o)`用于判断List是否包含特定元素,`sort(Comparator&lt;? super E&gt; c)`用于排序元素,以及`subList(int fromIndex, int toIndex)`用于获取子列表等。这些方法的...

Global site tag (gtag.js) - Google Analytics