201671010114 2016-2017-2 《Java程序设计》第十一周学习总结

        这周学习了集合,以及矢量类,栈类,散列表等。在集合中可以同时存放各种Object类的子类的对象,但不能存放基本类型数据。在访问集合中的元素时要对该元素进行强制类型转换。Vector类定义的集合在访问时通过下标进行访问。Stake类形成的集合遵循先进后出原则。它是Vector类的子类。Hashtable类是通过键值来访问集合中的元素。键值由散列码组成。ArrayList中的元素在内存中是顺序存储的,LinkedList中的元素在内存中是以双循环链表方式存储的。SortedSet类定义的集合是按照升序的方式排列集合中的元素。在集合中不允许有重复的数据出现。树集是一个有序集合,可以以任意顺序将元素插到集合中,在对集合进行遍历时,每个值将自动按照排序后的顺序呈现。在这周的实验任务中,有看到很多不一样的方法来编写一道程序。这次的任务中也有一些代码看不太懂。

public class SetTest
{
   public static void main(String[] args)
   {
      Set<String> words = new HashSet<>(); // HashSet implements Set 定义一个字符串集合
      long totalTime = 0; //
       
      //捕获异常语句
      try (Scanner in = new Scanner(System.in))  //标准输入流
      {
         while (in.hasNext()) //输入循环,存在可输入的元素
         {
            String word = in.next(); //定义字符串Word来接收输进来的值
            long callTime = System.currentTimeMillis();
            words.add(word); //将word添加到集合words中
            callTime = System.currentTimeMillis() - callTime;
            totalTime += callTime;
         }
      }

      Iterator<String> iter = words.iterator();  //将集合words转化一个用于访问每个元素的迭代器
      for (int i = 1; i <= 20 && iter.hasNext(); i++)  //利用for循环输出列表中前20个元素
         System.out.println(iter.next());
      System.out.println(". . .");
      System.out.println(words.size() + " distinct words. " + totalTime + " milliseconds.");
      
   }
}

long totalTime = 0;

long callTime = System.currentTimeMillis();

callTime = System.currentTimeMillis() - callTime; totalTime += callTime;

这几条代码不太懂。

 

原文地址:https://www.cnblogs.com/kww2407127266/p/7787684.html