- 浏览: 1054037 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
import java.util.ArrayList;
2.import java.util.List;
3.import java.util.ListIterator;
4.import java.util.Random;
5.import java.util.RandomAccess;
6.
7.import org.junit.Test;
8./**
9. * Collections随机排序
10. *
11. */
12.public class CollectionsShuffle {
13.
14. private static Random r;
15. private static final int SHUFFLE_THRESHOLD = 5;
16.
17. public static void shuffle(List<?> list) {
18. if (r == null) {
19. r = new Random();
20. }
21. shuffle(list, r);
22. }
23.
24. public static void shuffle(List<?> list, Random rnd) {
25. int size = list.size();
26. if (size < SHUFFLE_THRESHOLD || list instanceof RandomAccess) {
27. for (int i = size; i > 1; i--)
28. swap(list, i - 1, rnd.nextInt(i));
29. } else {
30. Object arr[] = list.toArray();
31.
32. for (int i = size; i > 1; i--)
33. swap(arr, i - 1, rnd.nextInt(i));
34.
35. ListIterator it = list.listIterator();
36. for (int i = 0; i < arr.length; i++) {
37. it.next();
38. it.set(arr[i]);
39. }
40. }
41. }
42.
43. public static void swap(List<?> list, int i, int j) {
44. final List l = list;
45. l.set(i, l.set(j, l.get(i)));
46. }
47.
48. private static void swap(Object[] arr, int i, int j) {
49. Object tmp = arr[i];
50. arr[i] = arr[j];
51. arr[j] = tmp;
52. }
53.
54.
55. //初始化List
56. public List<Integer> initList(){
57. List<Integer> list = new ArrayList<Integer>();
58. list.add(1);
59. list.add(2);
60. list.add(3);
61. list.add(4);
62. list.add(5);
63. list.add(6);
64. list.add(7);
65. list.add(8);
66. list.add(9);
67. return list;
68. }
69.
70. //测试Collections随机排序
71. @Test
72. public void testShuffle(){
73. List<Integer> list = initList();
74. shuffle(list, new Random());
75. for (Integer value : list) {
76. System.out.println(value);
77. }
78. }
79.
80.}
2.import java.util.List;
3.import java.util.ListIterator;
4.import java.util.Random;
5.import java.util.RandomAccess;
6.
7.import org.junit.Test;
8./**
9. * Collections随机排序
10. *
11. */
12.public class CollectionsShuffle {
13.
14. private static Random r;
15. private static final int SHUFFLE_THRESHOLD = 5;
16.
17. public static void shuffle(List<?> list) {
18. if (r == null) {
19. r = new Random();
20. }
21. shuffle(list, r);
22. }
23.
24. public static void shuffle(List<?> list, Random rnd) {
25. int size = list.size();
26. if (size < SHUFFLE_THRESHOLD || list instanceof RandomAccess) {
27. for (int i = size; i > 1; i--)
28. swap(list, i - 1, rnd.nextInt(i));
29. } else {
30. Object arr[] = list.toArray();
31.
32. for (int i = size; i > 1; i--)
33. swap(arr, i - 1, rnd.nextInt(i));
34.
35. ListIterator it = list.listIterator();
36. for (int i = 0; i < arr.length; i++) {
37. it.next();
38. it.set(arr[i]);
39. }
40. }
41. }
42.
43. public static void swap(List<?> list, int i, int j) {
44. final List l = list;
45. l.set(i, l.set(j, l.get(i)));
46. }
47.
48. private static void swap(Object[] arr, int i, int j) {
49. Object tmp = arr[i];
50. arr[i] = arr[j];
51. arr[j] = tmp;
52. }
53.
54.
55. //初始化List
56. public List<Integer> initList(){
57. List<Integer> list = new ArrayList<Integer>();
58. list.add(1);
59. list.add(2);
60. list.add(3);
61. list.add(4);
62. list.add(5);
63. list.add(6);
64. list.add(7);
65. list.add(8);
66. list.add(9);
67. return list;
68. }
69.
70. //测试Collections随机排序
71. @Test
72. public void testShuffle(){
73. List<Integer> list = initList();
74. shuffle(list, new Random());
75. for (Integer value : list) {
76. System.out.println(value);
77. }
78. }
79.
80.}
发表评论
-
20180222积累
2018-02-22 09:34 4811. mybatis如何通过接口查找对应的mapper. ... -
20180208积累
2018-02-08 10:28 473临时表与永久表相似,但临时表存储在 tempdb 中,当不 ... -
行业应用
2018-01-30 16:30 491git clone的时候用上面那个IP地址,下面栏中的不能 ... -
SQLite 数据库
2018-01-29 22:57 756android: SQLite创建数据 ... -
java里面获取map的key和value的方法
2018-02-01 11:29 2164获取map的key和value的方法分为两种形式: ma ... -
Eclipse中Maven WEB工程tomcat项目添加调试以及项目发布细节记录
2018-02-23 21:11 732一、建立一个maven WEB项目 1、file-&g ... -
错误:HttpServlet was not found on the Java
2018-02-23 21:12 390我们在用Eclipse进行Java web ... -
使用 java8 实现List到Array的转换
2018-02-23 21:13 2994开发中需要调用第三方的库,有些 API 的入参要求是 do ... -
Java8 利用Lambda处理List集合
2018-01-11 09:58 5635Java 8新增的Lambda表达式,我们可以很方便地并行操 ... -
java中string与json互相转化
2018-01-11 09:40 1076在Java中socket传输数据时,数据类型往往比较难选择。 ... -
JSON 数据格式
2018-01-11 09:37 474JSON(JavaScript Object Notatio ... -
java怎么读取json格式的数据
2018-01-11 09:46 1060java可以使用JSONObject和JSONArray来操作 ... -
Java8-如何将List转变为逗号分隔的字符串
2018-01-10 10:13 2000Converting a List to a String ... -
eclipse maven 打war包的两种方式
2018-02-23 21:25 704第一种:利用pom.xml文件打包。 右键pom.xml ... -
Annotation(三)——Spring注解开发
2018-02-28 09:21 429Spring框架的核心功能IoC(Inversion o ... -
Spring自定义注解
2018-02-28 09:32 600java注解:附在代码中的一些元信息,用于在编译、运行时起 ... -
Java项目
2018-01-08 10:56 0这两种解决办法已经能完全解决问题,不过值得注意的一点是,我 ... -
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
2018-03-22 10:41 1134在Eclipse中建立好一个Maven项目后,如果Java ... -
Java @override报错的解决方法
2018-01-07 12:56 0有时候Java的Eclipse工程换一台电脑后编译总是@ove ... -
Java 8 配置Maven-javadoc-plugin
2018-01-07 09:07 1047在升级JDK至1.8之后,使用Maven-javadoc- ...
相关推荐
在Java编程语言中,`Collections.shuffle()`方法是一个非常实用的工具,它用于对集合中的元素进行随机排序。这个方法在处理各种数据集时,比如游戏中打乱卡片顺序、抽奖程序或者任何需要随机化顺序的场景,都发挥着...
当需要对列表中的元素进行随机排序时,可以采用多种方法。这里我们重点介绍一种基于`Random`类的方法,如标题和描述中所述。这种方法通过创建一个随机数生成器并在循环中插入元素来实现随机排序的效果。 首先,我们...
本篇文章将详细探讨C#中实现数组的随机排序的方法,以及相关的编程技巧。 随机排序不同于常见的升序或降序排序,它是指数组中的元素被随机地重新排列,每个元素都有相等的概率出现在数组的任何位置。这种排序方式在...
Collections Collections 是 Java 中的一个集合工具类,提供了多种操作集合的...这个示例代码展示了如何使用 Collections 中的部分方法,包括反转列表、随机排序、互换元素、排序、二分查找、查找最大和最小元素等。
本文将深入探讨如何使用 `Collections` 类对 List 进行排序操作。 首先,让我们了解 `List` 排序的基本概念。在 Java 中,`List` 是接口,它继承了 `Collection` 接口,并添加了顺序相关的操作。常见的 `List` 实现...
例如,对整型ArrayList进行升序排序可以使用`Collections.sort(list)`。 2. **查找**: - `binarySearch(List<? extends Comparable<? super T>> list, T key)`: 对于已经排序的List,这个方法可以使用二分查找法...
或者包含了一些特定的算法实现,如排序、去重等。 在开发过程中,选择合适的iesi.collections.dll版本至关重要,因为不同的版本可能会影响程序的性能、稳定性和兼容性。开发者应当根据项目需求,对比不同版本的功能...
例如,Collections.sort()方法可以对List进行排序,而Collections.synchronizedXXX()方法则可以帮助我们创建线程安全的集合。 在实际开发中,选择合适的集合类型和方法至关重要。例如,当我们需要保持元素插入顺序...
8. **Collections工具类**: 提供了各种静态方法,如sort()进行排序,fill()填充元素,reverse()反转列表,以及copy()复制集合等。 9. **Concurrent Collections**: Java提供了线程安全的集合,如ConcurrentHashMap...
- 使用`Collections`工具类中的静态方法来进行集合操作,如排序、查找最大/最小元素、反转列表等,这些方法通常比手动实现更高效且更简洁。 - 当处理大型数据集时,避免在循环中直接调用集合方法,而是尽可能将集合...
其中,Collections工具类可以用于实现单个集合的排序功能,通过使用Comparable接口或者Comparator接口来定义元素的排序规则。 常见的数据结构包括栈、队列、数组、链表和红黑树。栈是一种后进先出(LIFO)的数据...
Collections 工具类提供了一些常用的方法,例如 sort、shuffle、binarySearch 等,可以对集合进行排序、随机排序和二分搜索。 Collection 框架的层次结构 Java Collections 框架的层次结构如下所示: * ...
1. **排序**:`Collections.sort(List<T> list)`可以对一个`List`进行升序排序,如果元素实现了`Comparable`接口,或者提供了自定义的比较器`Comparator`。 2. **反转**:`Collections.reverse(List<T> list)`可以...
Java Collections Framework提供了一系列算法来操作集合,包括排序、搜索等功能。 - **`Collections.sort()`**:用于对列表进行排序。 - **`Collections.binarySearch()`**:用于在已排序的列表中进行二分搜索。 - ...
在大多数编程语言中,数组和列表都提供了方便的排序方法,比如Java的`Collections.shuffle()`和Python的`random.shuffle()`。 2. Fisher-Yates(Knuth)洗牌算法:这是一种常用的随机排列算法,它在线性时间复杂度...
2. 随机排序:Collections提供了shuffle()方法来对列表进行随机排序。 3. 获取最值元素:Collections提供了max()方法来获取集合中的最大元素,可以根据自然顺序或指定的比较器进行比较。 Collections和Collection...
例如,ArrayList适合于频繁的随机访问,而LinkedList更适合于频繁的添加和删除操作。Map接口则用于存储键值对,HashMap提供快速查找,而TreeMap则按键排序。 书中可能涵盖了以下几个关键点: 1. **泛型的基本用法*...
在代码中,`Collections.shuffle(list)`将排序后的`list`随机排列。 4. **`Collections.swap(List<T> list, int i, int j)`**:此方法用于交换列表中指定位置的两个元素。在示例中,`Collections.swap(list, 2, 4)`...
- **随机点生成**:使用 `ee.FeatureCollection.randomPoints` 生成一个包含随机点的 Feature Collection。 - **屏幕绘制**:通过用户交互方式在地图上绘制特征,并将其转换成 Feature Collection。 #### 五、编辑 ...
此外,Collections框架还包括实用工具类,如Collections类,它提供了一系列静态方法,用于操作集合,如排序、填充、反转等。还有EnumSet和EnumMap,专门为枚举类型设计的高效集合实现。 在本次研讨会的实例代码中,...