Untitled
unknown
java
3 years ago
5.6 kB
0
Indexable
Never
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package lab11; import java.io.File; import java.io.FileNotFoundException; import java.util.Arrays; import java.util.Set; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Scanner; import java.util.TreeSet; /** * * @author For Students */ public class Lab11 { /** * @param args the command line arguments */ public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("London"); set.add("Paris"); set.add("New York"); set.add("San Francisco"); set.add("Beijing"); set.add("New York"); System.out.println(set); for (String s: set) { System.out.print(s.toUpperCase() + " "); } testMethodsInCollection(); testLinkedHashSet(); testTreeSet(); testCountKeywords(); } public static void testMethodsInCollection () { Set<String>set1 = new HashSet<>(); set1.add("London"); set1.add("Paris"); set1.add("New York"); set1.add("San Francisco"); set1.add("Beijing"); System.out.println("set1 is " + set1); System.out.println(set1.size() + " elements in set1"); set1.remove("London"); System.out.println("\nset1 is " + set1); System.out.println(set1.size() + " elements in set1"); Set<String> set2 = new HashSet<>(); set2.add("London"); set2.add("Shanghai"); set2.add("Paris"); System.out.println("\nset2 is " + set2); System.out.println(set2.size() + " elements in set2"); System.out.println("\nIs Taipei in set2? " + set2.contains("Taipei")); set1.addAll(set2); System.out.println("\nAfter adding set2 to set1, set1 is "+ set1); set1.removeAll(set2); System.out.println("After removing set2 from set1, set1 is " + set1); set1.retainAll(set2); System.out.println("After removing common elements in set2 " + "from set1, set1 is " + set1); } public static void testLinkedHashSet() { Set<String> set = new LinkedHashSet<>(); set.add("London"); set.add("Paris"); set.add("New York"); set.add("San Francisco"); set.add("Beijing"); set.add("New York"); System.out.println(set); for (String element: set) { System.out.print(element.toLowerCase() + " "); } } public static void testTreeSet() { Set<String> set = new HashSet<>(); set.add("London"); set.add("Paris"); set.add("New York"); set.add("San Francisco"); set.add("Beijing"); set.add("New York"); TreeSet<String> treeSet = new TreeSet<>(set); System.out.println("Sorted tree set: " + treeSet); System.out.println("first(): " + treeSet.first()); System.out.println("last(): " + treeSet.last()); System.out.println("headSet(\"New York\"): " + treeSet.headSet("New York")); System.out.println("tailSet(\"New York\"): " + treeSet.tailSet("New York")); System.out.println("lower(\"P\"): " + treeSet.lower("P")); System.out.println("higher(\"P\"): " + treeSet.higher("P")); System.out.println("floor(\"P\"): " + treeSet.floor("P")); System.out.println("ceiling(\"P\"): " + treeSet.ceiling("P")); System.out.println("pollFirst(): " + treeSet.pollFirst()); System.out.println("pollLast(): " + treeSet.pollLast()); System.out.println("New tree set: " + treeSet); } public static void testCountKeywords() throws FileNotFoundException { Scanner input = new Scanner(System.in); System.out.print("Enter a Java source file: "); String filename = input.nextLine(); File file = new File(filename); if (file.exists()) { System.out.println("The number of keywords in " + filename + " is " + countKeywords(file)); }else { System.out.println("File " + filename + " does not exist"); } } public static int countKeywords(File file) throws FileNotFoundException { String[] keywordString = {"abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "enum", "extends", "for", "final", "finally", "float", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", "volatile", "while", "true", "false", "null"}; Set<String> keywordSet = new HashSet<>(Arrays.asList(keywordString)); int count = 0; Scanner input = new Scanner(file); while (input.hasNext()) { String word = input.next(); if (keywordSet.contains(word)) { count++; } } return count; } }