/**
* 利用ArrayList和LinkedList对10万个数据进行插入和查询,比较效率
*/
ArrayList<Integer> list = new ArrayList<>();
long start = System.currentTimeMillis();
Random random = new Random();
for(int i = 0;i < 100000;i++){
list.add(random.nextInt(100));
}
long end = System.currentTimeMillis();
long time = end - start;
System.out.println("ArrayList"+"插入数据时间为:"+time+"ms");
long start1 = System.currentTimeMillis();
for(int j = 0;j < 100000;j++){
list.contains(5);
}
long end1 = System.currentTimeMillis();
long time1 = end1 - start1;
System.out.println("ArrayList"+"查询数据时间为:"+time1+"ms");
LinkedList<Integer> list1 = new LinkedList<>();
long start2 = System.currentTimeMillis();
Random random1 = new Random();
for(int i = 0;i < 100000;i++){
list1.add(random1.nextInt(100));
}
long end2 = System.currentTimeMillis();
long time2 = end2 - start2;
System.out.println("LinkedList插入数据时间为:"+time2+"ms");
long start3 = System.currentTimeMillis();
for(int j = 0;j < 100000;j++){
list.contains(5);
}
long end3 = System.currentTimeMillis();
long time3 = end3 - start3;
System.out.println("LinkedList"+"查询数据时间为:"+time3+"ms");
10万数据统计每个数据出现次数并打印
/**
* 10万数据统计每个数据出现次数并打印
* 利用HashMap的特点:key不能重复(存数据),value可以重复(存次数)
*/
HashMap<Integer,Integer> hashMap = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for(int i = 0;i < 100000;i++){
list.add(random.nextInt(100));
}
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
Integer num = iterator.next();
if(!hashMap.containsKey(num)){
hashMap.put(num,1);
}
hashMap.put(num,hashMap.get(num)+1);
}
Iterator<Map.Entry<Integer,Integer>> itr = hashMap.entrySet().iterator();
while(itr.hasNext()){
Map.Entry<Integer,Integer> num = itr.next();
Integer key = num.getKey();
Integer value = num.getValue();
System.out.println(key + " : "+ value);
}
10万数据统计第一个重复的数据并打印
/**
* 10万数据统计第一个重复的数据并打印
*/
HashMap<Integer,Integer> hashMap = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for(int i = 0;i < 100000;i++){
list.add(random.nextInt(100));
}
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
Integer num = iterator.next();
Integer n = hashMap.get(num);
if(n == null){
hashMap.put(num,1);
}else{
System.out.println(num+" ");
break;
}
}
10万数据找出出现次数最多的一组数据
/**
* 10万数据找出出现次数最多的一组数据
*/
HashMap<Integer,Integer> hashMap = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for(int i = 0;i < 100000;i++){
list.add(random.nextInt(100));
}
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()){
Integer num = iterator.next();
if(!hashMap.containsKey(num)){
hashMap.put(num,1);
}
hashMap.put(num,hashMap.get(num)+1);
}
int max = 0;//记录重复最多的数据次数
int data = 0;//记录出现次数最多的数据
Iterator<Map.Entry<Integer,Integer>> itr = hashMap.entrySet().iterator();
while(itr.hasNext()){
Map.Entry<Integer,Integer> num = itr.next();
Integer key = num.getKey();
Integer value = num.getValue();
if(value > max){
max = value;
data = key;
}
}
System.out.println(data + " : "+ max);
10万数据去重
/**
* 10万数据去重
* 利用HashSet的特点:存储单个值,且数据不能重复
*/
HashSet<Integer> hashSet = new HashSet<>();
ArrayList<Integer> list = new ArrayList<>();
Random random = new Random();
for(int i = 0;i < 7;i++){
list.add(random.nextInt(100));
}
System.out.println("打印数组:");
System.out.println(list.toString());
for(Integer e:list){
hashSet.add(e);
}
Iterator<Integer> itr = hashSet.iterator();
System.out.println("打印HashSet:");
while(itr.hasNext()){
Integer value = itr.next();
System.out.print(value+" ");
}
System.out.println();
}