这周学习了集合,以及矢量类,栈类,散列表等。在集合中可以同时存放各种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;
这几条代码不太懂。