学习HashSet遇到的问题的解决

2016-12-01  本文已影响0人  Y海泉
import java.util.*;
public class SetTest {

public static void main(String[] args){
    Set<String> words = new HashSet<>();
    long totalTime = 0;
    
    Scanner in = new Scanner(System.in);
    while(in.hasNext()){
        String word = in.next();
        long callTime= System.currentTimeMillis();
        words.add(word);
        callTime = System.currentTimeMillis() - callTime;
        totalTime += callTime;
        
    }
    
    Iterator<String> iter =words.iterator();
    for(int i= 0 ; i != 20 && iter.hasNext(); i++)
        System.out.println(iter.next());
    System.out.println("...");
    System.out.println(words.size() + " distinct words  "+totalTime + "milliseconds.");
}
}

学习HashSet的结构,在书中看到的代码
然后 按照书中的运行 java SetTest > alice30.txt
运行失败,提示没有运行成功,所以查资料,发现是java的环境没有搭好
解决的网站
按照这里搭建成功


途中学习到Run AS configurations的arguments可以添加main的输入
在指定文件夹点击shift,可以打开让命令行直接进入该文件夹


代码中的知识点

1.Scanner类

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

使用

Scanner s = new Scanner(System.in);

  1. Scanner 类的 next() 与 nextLine() 方法获取 输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:
    next 和 nextLine
    next是省略空格,读取字符(类似c++的cin>>)
    nextLine是读取行

  2. 如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:
    demo

2.HashSet

1.是一个保存元素的容器,但是不允许有相同个元素,插入,删除效率高
定义

Set<String> names = Hash<>();
添加元素
name.add("yhq");
使用迭代器遍历
Iterator iter = name.iterator();
while(iter.hasNext){
System.out.println(iter.next());
}

上一篇 下一篇

猜你喜欢

热点阅读