-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLinkedListSet.java
81 lines (60 loc) · 1.97 KB
/
LinkedListSet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package SetBasicsAndBSTSet;
import LinkedList.LinkedList;
import java.util.ArrayList;
/**
* @ Description:
* @ Date: Created in 21:19 20/07/2018
* @ Author: Anthony_Duan
*/
public class LinkedListSet<E> implements Set<E> {
private LinkedList<E> list;
public LinkedListSet() {
list = new LinkedList<E>();
}
//O(n)
@Override
public void add(E e) {
if (!list.contains(e)) {
list.addFirst(e);
}
}
//O(n)
@Override
public boolean contains(E e) {
return list.contains(e);
}
//O(n)
@Override
public void remove(E e) {
list.removeElement(e);
}
@Override
public int getSize() {
return list.getSize();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
public static void main(String[] args) {
System.out.println("Pride and Prejudice");
ArrayList<String> words1 = new ArrayList<>();
if (FileOperation.readFile("/Users/duanjiaxing/IdeaProjects/Data-Structure/data-structure/src/SetBasicsAndBSTSet/pride-and-prejudice.txt", words1)) {
System.out.println("Total words: " + words1.size());
LinkedListSet<String> set1 = new LinkedListSet<>();
for (String word : words1)
set1.add(word);
System.out.println("Total different words: " + set1.getSize());
}
System.out.println();
System.out.println("A Tale of Two Cities");
ArrayList<String> words2 = new ArrayList<>();
if (FileOperation.readFile("/Users/duanjiaxing/IdeaProjects/Data-Structure/data-structure/src/SetBasicsAndBSTSet/a-tale-of-two-cities.txt", words2)) {
System.out.println("Total words: " + words2.size());
LinkedListSet<String> set2 = new LinkedListSet<>();
for (String word : words2)
set2.add(word);
System.out.println("Total different words: " + set2.getSize());
}
}
}