PO实体类User:

package aA;

public class User {
private String name; private int many;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getMany() {
return many;
} public void setMany(int i) {
this.many = i;
}
public User(int many,int id){
this.many = many;
this.id =id;
}
public User(){ }
}

PO实体类Cumster:

package aA;

public class Cumster {
private String name;
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
private int many;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMany() {
return many;
}
public void setMany(int many) {
this.many = many;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Cumster(String name,int id){
this.name = name;
this.id = id;
}
public Cumster(){ }
}

随机产生字符串(模拟list数据添加):

package aA;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random; /**
* 字符随机生成类
*/
public class RandomDemo {
/**
* 随机产生类型枚举
*/
public static enum TYPE {
/**小字符型*/
LETTER,
/**大写字符型*/
CAPITAL,
/**数字型*/
NUMBER,
/**大+小字符 型*/
LETTER_CAPITAL,
/**小字符+数字 型*/
LETTER_NUMBER,
/**大写字符+数字*/
CAPITAL_NUMBER,
/**大+小字符+数字 型*/
LETTER_CAPITAL_NUMBER,
}
private static String[] lowercase = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" }; private static String[] capital = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; private static String[] number = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }; /**
* 静态随机数
*/
private static Random random = new Random(); /**
* 获取随机组合码
* @param num 位数
* @param type 类型
* @type
* <br>小写字符型 LETTER,
* <br>大写字符型 CAPITAL,
* <br>数字型 NUMBER,
* <br>大+小字符型 LETTER_CAPITAL,
* <br>小字符+数字 型 LETTER_NUMBER,
* <br>大字符+数字 型 CAPITAL_NUMBER,
* <br>大+小字符+数字 型 LETTER_CAPITAL_NUMBER,
*/
public static String getRandom(int num, TYPE type) {
ArrayList<String> temp = new ArrayList<String>();
StringBuffer code = new StringBuffer();
switch (type) {
case LETTER:
temp.addAll(Arrays.asList(lowercase));
break;
case CAPITAL:
temp.addAll(Arrays.asList(capital));
break;
case NUMBER:
temp.addAll(Arrays.asList(number));
break;
case LETTER_CAPITAL:
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(capital));
break;
case LETTER_NUMBER:
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(number));
break;
case CAPITAL_NUMBER:
temp.addAll(Arrays.asList(capital));
temp.addAll(Arrays.asList(number));
break;
case LETTER_CAPITAL_NUMBER:
temp.addAll(Arrays.asList(lowercase));
temp.addAll(Arrays.asList(capital));
temp.addAll(Arrays.asList(number));
break;
}
for (int i = 0; i < num; i++) {
code.append(temp.get(random.nextInt(temp.size())));
}
return code.toString();
}
// public static void main(String[] args) {
// System.out.println(RandomDemo.getRandom(10, RandomDemo.TYPE.LETTER_CAPITAL));
// }
}

测试类:

package aA;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Random; public class AA { public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
Random random = new Random();
for(int i = 0;i<100000;i++){
int age = random.nextInt(100);
userList.add(new User(age,i));
}
List<Cumster> cList = new ArrayList<Cumster>();
for(int i = 0;i<100000;i++){
cList.add(new Cumster(RandomDemo.getRandom(10,RandomDemo.TYPE.LETTER_CAPITAL),i));
}
//使用普通for循环遍历
// long start = System.currentTimeMillis();
// for (int i = 0; i < cList.size(); i ++) {
// User user = userList.get(i);
// for(int j=0;j<userList.size();j++){
// Cumster cumster = cList.get(j);
// if(user.getId() == cumster.getId()){
// user.setName(cumster.getName());
// }
// }
// }
// long end = System.currentTimeMillis(); //使用for-each迭代循环遍历
List<User> strList = new ArrayList<User>();
long start = System.currentTimeMillis();
for (Cumster cumster : cList) {
for (User user : userList) {
if(cumster.getId() == user.getId()){
user.setName(cumster.getName());
strList.add(user);
}
}
}
long end = System.currentTimeMillis(); for (int i = 0; i < userList.size(); i ++) {
System.out.print(userList.get(i).getName()+",");
}
// Collections.sort(userList, Comparator.comparing(User::getId));
Collections.sort(userList, new Comparator<User>(){
/*
* int compare(RateInfo R1, RateInfo R2) 返回一个基本类型的整型,
* 返回负数表示:R1 小于R2,
* 返回0 表示:R1和R2相等,
* 返回正数表示:R1大于R2
*/
public int compare(User R1, User R2) {
//按照RateCode的年龄进行升序排列
if(R1.getId() > R2.getId()){
return 1;
}
if(R1.getId() == R2.getId()){
return 0;
}
return -1;
}
});
System.out.println();
for (User user : userList) {
System.out.println(user.getId()+":"+user.getMany()+","+user.getName());
}
System.out.println(strList.toString());
System.out.println("运行时间:"+(end-start));
}
}

结果:

  1.使用for-each循环10万个数据进行循环运行时间:

  

  2.使用普通for循环10万个数据进行循环运行时间:

  

最新文章

  1. Appium scroll 滑动查找
  2. Excel取消超级链接
  3. photobooth.js jquery
  4. &lt;转&gt;FreeMarker内置函数
  5. JS预解析
  6. 【文件系统】浅解释FAT32
  7. HDOJ/HDU 2566 统计硬币(公式~遍历~)
  8. android_小总结_方法过时的兼容处理
  9. javaSE读取Properties文件的六种方法
  10. jQuery中bind与live的用法与区别
  11. cxf整合spring错误为:cvc-complex-type.2.4.c
  12. 入侵拿下DVBBS php官网详细过程(图)
  13. SqlServer通用存储过程
  14. Windows7 (Win7) 配置Windows Update 时失败 正在还原更改
  15. Android 一些关于 Activity 的技巧
  16. 入围T00ls 2018风云人物
  17. centos7安装keepalived问题
  18. css小贴士备忘录
  19. apache两种工作模式详解
  20. leetcode693:Binary Number with Alternating Bits

热门文章

  1. php array_unshift,array_push追加数组元素
  2. Django框架基础-MTV模型
  3. thinkone无法重新创建数据库的问题 newsy
  4. T2963 贪吃蛇【BFS,四进制状压,A*】
  5. MQTT入门介绍
  6. ActiveMQ 基础
  7. springboot实现转发和重定向
  8. 【Uva 12128】Perfect Service
  9. 【BZOJ 1257】[CQOI2007]余数之和sum
  10. 自定义UICollectionViewLayout之CATransform3D