package com.xiva.demo;
import java.util.*;
public class ArrayDemo{
@SuppressWarnings("rawtypes")
public static void main(String[] args){
Date starTime = new Date();
System.out.println(starTime);
int[] a = new int[1000000];
for(int i = 0; i<1000000;i++){
a[i] = i+1; //从1--1000000没有重复的
}
a[377455] = 100;
// Date endTime = new Date();
// System.out.println(endTime);
// List<Integer> list = new ArrayList<Integer>();
Set set=new HashSet();
// for(int i = 0 ; i < 1000000;i++){
// Integer temp = new Integer(a[i]);
// if(!list.contains(temp)){
// list.add(temp);
// }else{
// int j = list.indexOf(temp) ;//第一次出现
// System.out.println("第"+(j+1)+"个数和第"+(i+1)+"个数重复为:"+temp);
// break; //找到即退出
// }
// }
int i = 0;
for( i=0;i<a.length;i++)
{
if(!set.add(a[i]))
break;
}
Iterator itreator = set.iterator();
int j = 1;
while(itreator.hasNext()){
int temp = Integer.parseInt(itreator.next().toString());
if(temp == a[i])
break;
j++;
}
System.out.println(i);
System.out.println(j);
System.out.println("the same number is "+a[i]);
Date endTime = new Date();
System.out.println(endTime);
}
}
HashSet的效率要高多了啊;还有其转换的Iterator遍历效率也不错~
package com.xiva.demo;
import java.util.*;
public class ArrayDemo{
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void main(String[] args){
Date starTime = new Date();
System.out.println(starTime);
int[] a = new int[1000000];
for(int i = 0; i<1000000;i++){
a[i] = i+1; //从1--1000000没有重复的
}
a[377455] = 44555;
Set set=new LinkedHashSet();//为有序hashSet
// Set set=new HashSet();
int index = 0;
for( index=0;index<a.length;index++)
{
if(set.contains(a[index]))
break;
else{
synchronized (set) {
set.add(a[index]);
}
}
}
Iterator itreator = set.iterator();
int j = 1;
while(itreator.hasNext()){
Object obj = itreator.next();
int temp = Integer.parseInt(obj.toString());
if(temp == a[index])
break;
j+=1;
}
System.out.println(index);
System.out.println(j);
System.out.println("the same number is "+a[index]);
Date endTime = new Date();
System.out.println(endTime);
}
}
LinkedHashSet为有序类
分享到:
相关推荐
在这个题目中,“链表实现100万数的奇偶大小排列”是一个关于利用链表对随机生成的100万个数字进行特定排序的任务。下面我们将详细探讨这个话题。 首先,我们需要理解链表的基本概念。链表不同于数组,它不是一块...
通过模拟含有100万个随机元素的文件,且k设定为500,000的情况可以发现,这两种算法都需要几天的计算机处理时间才能完成计算(尽管最终会给出正确的答案)。而在第七章中介绍的一种替代方法可以在大约一秒内得到解答...
60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成。 **知识点解析:** - **条件判断**:根据利润的不同区间进行条件判断。 - **分段函数**:奖金计算遵循不同的分段...
在本项目中,我们关注的是一个名为"图书查询系统"的应用程序,该程序的主要功能是模拟图书馆的图书编号管理,并且能对这100万条图书信息进行快速查询。这个系统采用了一些高效的算法和数据结构来处理大量数据,如...
因此,RC4的一个重要弱点在于存在一些弱密钥,这些密钥可能导致子密钥序列在短时间内(例如不足100万字节)完全重复或者部分重复(不足10万字节)。为了确保安全性,在使用RC4算法时建议对加密密钥进行测试,排除...
程序通过循环遍历10万以内的整数,对每个数计算加100和加268后的平方根,然后检查这两个平方根的平方是否等于原来的数加相应的值,以找到符合条件的数。 ```c for (i=1; i; i++) { x = sqrt(i+100); y = sqrt(i+...
在这个问题中,输入包括一个二维字母数组和一个单词列表,目标是在这个数组中找到所有的单词。这些单词可能出现在水平、垂直或对角线方向上。这个问题展示了如何利用数据结构(如二维数组)和算法(如深度优先搜索)...
- 添加一个指示器或数组显示控件,用于初步观察随机数序列。 2. **程序框图实现**: - 首先,需要用到“随机数”函数生成0到100范围内的随机数。LabVIEW的标准库中提供了“均匀分布随机数”函数,可以设置其种子...
题目中要求在插入100万个整数后,使用二分查找找到100万个更大的数,以此测试效率。 4. **动态环形队列**:动态环形队列是一种高效的数据结构,可以实现头尾插入和删除。题目要求实现`DeQue_PopTail()`和`DeQue_...
通过循环遍历1到10万之间的整数,对每个数分别进行加100和加268后的平方根计算,然后判断这两个平方根是否等于对应的整数。这种方法利用了数学中的完全平方数性质,以及C语言中的数学函数库(如sqrt)。 【程序4】...
根据题目,每月有2万个号,20个月内共有40万个号,第一个月有100万人参与,之后每月增加4万人,因此20个月后总人数为100万+(20×4)=108万。小军摇中的概率为2万/108万。 2. **网络协议与TCP连接**:TCP连接的稳定性...
qsort函数的算法性能强劲,主要原因是它采用了基于比较的排序算法,即每次比较两个元素,选择较小的元素作为下一个元素。这种算法可以在O(nlg(n))时间内完成排序操作。 在实际应用中,qsort函数广泛应用于各种排序...
答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。 38.abstract class和interface有什么区别? 答: 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为...
MNIST数据集通常以二进制或pickle格式提供,包括两个文件:一个是图像数据,另一个是对应的标签。在解压后的MNIST文件中,这些数据以numpy数组的形式存储,便于Python编程语言进行处理。 - 图像数据:每个图像被展...
18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...
* 顺序查找:任意输入10个数存入一维数组S,然后再输入一个待查找数据存入变量X,要求在数组S中用顺序查找法查找X,若找到数据则打印该数,否则打印“Not find!” * 打印九九乘法表:打印九九乘法表 * 菲波拉契数列...
- 可以通过创建一个包含 1 到 100 的序列,然后使用随机算法打乱数组元素的顺序来实现。 26. **列举 ASP.NET 页面之间传递值的几种方式。** - 使用 URL 传递查询字符串参数、ViewState、HiddenField、Session、...