Stwillia94 7 年前
父节点
当前提交
f99be8cf66

+ 1
- 0
.idea/.name 查看文件

1
+generics

+ 16
- 0
.idea/compiler.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="CompilerConfiguration">
4
+    <annotationProcessing>
5
+      <profile name="Maven default annotation processors profile" enabled="true">
6
+        <sourceOutputDir name="target/generated-sources/annotations" />
7
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
8
+        <outputRelativeToContentRoot value="true" />
9
+        <module name="generics" />
10
+      </profile>
11
+    </annotationProcessing>
12
+    <bytecodeTargetLevel>
13
+      <module name="generics" target="8" />
14
+    </bytecodeTargetLevel>
15
+  </component>
16
+</project>

+ 13
- 0
.idea/libraries/Maven__junit_junit_4_12.xml 查看文件

1
+<component name="libraryTable">
2
+  <library name="Maven: junit:junit:4.12">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml 查看文件

1
+<component name="libraryTable">
2
+  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/misc.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="MavenProjectsManager">
4
+    <option name="originalFiles">
5
+      <list>
6
+        <option value="$PROJECT_DIR$/pom.xml" />
7
+      </list>
8
+    </option>
9
+  </component>
10
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
11
+    <output url="file://$PROJECT_DIR$/classes" />
12
+  </component>
13
+</project>

+ 8
- 0
.idea/modules.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/generics.iml" filepath="$PROJECT_DIR$/generics.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 6
- 0
.idea/vcs.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 539
- 0
.idea/workspace.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="193c026b-008e-46d5-934f-1d714dc4364a" name="Default Changelist" comment="">
5
+      <change afterPath="$PROJECT_DIR$/src/main/java/MyArrayList.java" afterDir="false" />
6
+      <change afterPath="$PROJECT_DIR$/src/main/java/MySet.java" afterDir="false" />
7
+      <change afterPath="$PROJECT_DIR$/src/test/java/MySetTest.java" afterDir="false" />
8
+      <change afterPath="$PROJECT_DIR$/src/test/java/TestMyArrayList.java" afterDir="false" />
9
+    </list>
10
+    <ignored path="$PROJECT_DIR$/target/" />
11
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
12
+    <option name="SHOW_DIALOG" value="false" />
13
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
14
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
15
+    <option name="LAST_RESOLUTION" value="IGNORE" />
16
+  </component>
17
+  <component name="FUSProjectUsageTrigger">
18
+    <session id="1791725349">
19
+      <usages-collector id="statistics.lifecycle.project">
20
+        <counts>
21
+          <entry key="project.closed" value="3" />
22
+          <entry key="project.open.time.1" value="3" />
23
+          <entry key="project.open.time.27" value="1" />
24
+          <entry key="project.opened" value="4" />
25
+        </counts>
26
+      </usages-collector>
27
+      <usages-collector id="statistics.file.extensions.open">
28
+        <counts>
29
+          <entry key="class" value="1" />
30
+          <entry key="deleteme" value="1" />
31
+          <entry key="java" value="23" />
32
+        </counts>
33
+      </usages-collector>
34
+      <usages-collector id="statistics.file.types.open">
35
+        <counts>
36
+          <entry key="CLASS" value="1" />
37
+          <entry key="JAVA" value="23" />
38
+          <entry key="PLAIN_TEXT" value="1" />
39
+        </counts>
40
+      </usages-collector>
41
+      <usages-collector id="statistics.file.extensions.edit">
42
+        <counts>
43
+          <entry key="java" value="3833" />
44
+        </counts>
45
+      </usages-collector>
46
+      <usages-collector id="statistics.file.types.edit">
47
+        <counts>
48
+          <entry key="JAVA" value="3833" />
49
+        </counts>
50
+      </usages-collector>
51
+    </session>
52
+  </component>
53
+  <component name="FileEditorManager">
54
+    <splitter split-orientation="horizontal" split-proportion="0.5479233">
55
+      <split-first>
56
+        <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
57
+          <file pinned="false" current-in-tab="false">
58
+            <entry file="file://$PROJECT_DIR$/src/main/java/MyArrayList.java">
59
+              <provider selected="true" editor-type-id="text-editor">
60
+                <state relative-caret-position="1815">
61
+                  <caret line="121" column="6" selection-start-line="121" selection-start-column="6" selection-end-line="121" selection-end-column="6" />
62
+                  <folding>
63
+                    <element signature="imports" expanded="true" />
64
+                  </folding>
65
+                </state>
66
+              </provider>
67
+            </entry>
68
+          </file>
69
+          <file pinned="false" current-in-tab="true">
70
+            <entry file="file://$PROJECT_DIR$/src/main/java/MySet.java">
71
+              <provider selected="true" editor-type-id="text-editor">
72
+                <state relative-caret-position="510">
73
+                  <caret line="37" column="26" selection-start-line="37" selection-start-column="26" selection-end-line="37" selection-end-column="26" />
74
+                </state>
75
+              </provider>
76
+            </entry>
77
+          </file>
78
+        </leaf>
79
+      </split-first>
80
+      <split-second>
81
+        <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
82
+          <file pinned="false" current-in-tab="false">
83
+            <entry file="file://$PROJECT_DIR$/src/test/java/TestMyArrayList.java">
84
+              <provider selected="true" editor-type-id="text-editor">
85
+                <state relative-caret-position="105">
86
+                  <caret line="7" column="28" selection-start-line="7" selection-start-column="28" selection-end-line="7" selection-end-column="28" />
87
+                  <folding>
88
+                    <element signature="imports" expanded="true" />
89
+                  </folding>
90
+                </state>
91
+              </provider>
92
+            </entry>
93
+          </file>
94
+          <file pinned="false" current-in-tab="true">
95
+            <entry file="file://$PROJECT_DIR$/src/test/java/MySetTest.java">
96
+              <provider selected="true" editor-type-id="text-editor">
97
+                <state relative-caret-position="60">
98
+                  <caret line="9" selection-start-line="9" selection-end-line="9" />
99
+                </state>
100
+              </provider>
101
+            </entry>
102
+          </file>
103
+        </leaf>
104
+      </split-second>
105
+    </splitter>
106
+  </component>
107
+  <component name="FileTemplateManagerImpl">
108
+    <option name="RECENT_TEMPLATES">
109
+      <list>
110
+        <option value="Class" />
111
+      </list>
112
+    </option>
113
+  </component>
114
+  <component name="Git.Settings">
115
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
116
+  </component>
117
+  <component name="IdeDocumentHistory">
118
+    <option name="CHANGED_PATHS">
119
+      <list>
120
+        <option value="$PROJECT_DIR$/src/test/java/MySetTest.java" />
121
+        <option value="$PROJECT_DIR$/src/main/java/MyArrayList.java" />
122
+        <option value="$PROJECT_DIR$/src/main/java/MySet.java" />
123
+        <option value="$PROJECT_DIR$/src/test/java/MyArrayListTest.java" />
124
+        <option value="$PROJECT_DIR$/src/test/java/TestMyArrayList.java" />
125
+      </list>
126
+    </option>
127
+  </component>
128
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
129
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
130
+  <component name="JsGulpfileManager">
131
+    <detection-done>true</detection-done>
132
+    <sorting>DEFINITION_ORDER</sorting>
133
+  </component>
134
+  <component name="ProjectFrameBounds">
135
+    <option name="y" value="23" />
136
+    <option name="width" value="1440" />
137
+    <option name="height" value="797" />
138
+  </component>
139
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
140
+    <ConfirmationsSetting value="2" id="Add" />
141
+  </component>
142
+  <component name="ProjectView">
143
+    <navigator proportions="" version="1">
144
+      <foldersAlwaysOnTop value="true" />
145
+    </navigator>
146
+    <panes>
147
+      <pane id="ProjectPane">
148
+        <subPane>
149
+          <expand>
150
+            <path>
151
+              <item name="generics" type="b2602c69:ProjectViewProjectNode" />
152
+              <item name="CR-MicroLabs-Generics-MyArrayList" type="462c0819:PsiDirectoryNode" />
153
+            </path>
154
+            <path>
155
+              <item name="generics" type="b2602c69:ProjectViewProjectNode" />
156
+              <item name="CR-MicroLabs-Generics-MyArrayList" type="462c0819:PsiDirectoryNode" />
157
+              <item name="src" type="462c0819:PsiDirectoryNode" />
158
+            </path>
159
+            <path>
160
+              <item name="generics" type="b2602c69:ProjectViewProjectNode" />
161
+              <item name="CR-MicroLabs-Generics-MyArrayList" type="462c0819:PsiDirectoryNode" />
162
+              <item name="src" type="462c0819:PsiDirectoryNode" />
163
+              <item name="main" type="462c0819:PsiDirectoryNode" />
164
+            </path>
165
+            <path>
166
+              <item name="generics" type="b2602c69:ProjectViewProjectNode" />
167
+              <item name="CR-MicroLabs-Generics-MyArrayList" type="462c0819:PsiDirectoryNode" />
168
+              <item name="src" type="462c0819:PsiDirectoryNode" />
169
+              <item name="main" type="462c0819:PsiDirectoryNode" />
170
+              <item name="java" type="462c0819:PsiDirectoryNode" />
171
+            </path>
172
+            <path>
173
+              <item name="generics" type="b2602c69:ProjectViewProjectNode" />
174
+              <item name="CR-MicroLabs-Generics-MyArrayList" type="462c0819:PsiDirectoryNode" />
175
+              <item name="src" type="462c0819:PsiDirectoryNode" />
176
+              <item name="test" type="462c0819:PsiDirectoryNode" />
177
+            </path>
178
+            <path>
179
+              <item name="generics" type="b2602c69:ProjectViewProjectNode" />
180
+              <item name="CR-MicroLabs-Generics-MyArrayList" type="462c0819:PsiDirectoryNode" />
181
+              <item name="src" type="462c0819:PsiDirectoryNode" />
182
+              <item name="test" type="462c0819:PsiDirectoryNode" />
183
+              <item name="java" type="462c0819:PsiDirectoryNode" />
184
+            </path>
185
+          </expand>
186
+          <select />
187
+        </subPane>
188
+      </pane>
189
+      <pane id="Scope" />
190
+      <pane id="PackagesPane" />
191
+    </panes>
192
+  </component>
193
+  <component name="PropertiesComponent">
194
+    <property name="WebServerToolWindowFactoryState" value="false" />
195
+    <property name="aspect.path.notification.shown" value="true" />
196
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1542592381674" />
197
+    <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary" value="JUnit4" />
198
+    <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrarySuperClass.JUnit4" value="" />
199
+    <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
200
+    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
201
+    <property name="project.structure.last.edited" value="Project" />
202
+    <property name="project.structure.proportion" value="0.0" />
203
+    <property name="project.structure.side.proportion" value="0.0" />
204
+    <property name="settings.editor.selected.configurable" value="reference.projectsettings.compiler.javacompiler" />
205
+  </component>
206
+  <component name="RecentsManager">
207
+    <key name="CreateTestDialog.RecentsKey">
208
+      <recent name="" />
209
+    </key>
210
+    <key name="CreateTestDialog.Recents.Supers">
211
+      <recent name="" />
212
+    </key>
213
+  </component>
214
+  <component name="RunDashboard">
215
+    <option name="ruleStates">
216
+      <list>
217
+        <RuleState>
218
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
219
+        </RuleState>
220
+        <RuleState>
221
+          <option name="name" value="StatusDashboardGroupingRule" />
222
+        </RuleState>
223
+      </list>
224
+    </option>
225
+  </component>
226
+  <component name="RunManager" selected="JUnit.MyArrayListTest">
227
+    <configuration name="MyArrayListTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
228
+      <module name="generics" />
229
+      <option name="PACKAGE_NAME" value="" />
230
+      <option name="MAIN_CLASS_NAME" value="MyArrayListTest" />
231
+      <method v="2">
232
+        <option name="Make" enabled="true" />
233
+      </method>
234
+    </configuration>
235
+    <configuration name="MyArrayListTest.testAdd" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
236
+      <module name="generics" />
237
+      <option name="PACKAGE_NAME" value="" />
238
+      <option name="MAIN_CLASS_NAME" value="MyArrayListTest" />
239
+      <option name="METHOD_NAME" value="testAdd" />
240
+      <option name="TEST_OBJECT" value="method" />
241
+      <method v="2">
242
+        <option name="Make" enabled="true" />
243
+      </method>
244
+    </configuration>
245
+    <configuration name="MyArrayListTest.testContains" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
246
+      <module name="generics" />
247
+      <option name="PACKAGE_NAME" value="" />
248
+      <option name="MAIN_CLASS_NAME" value="MyArrayListTest" />
249
+      <option name="METHOD_NAME" value="testContains" />
250
+      <option name="TEST_OBJECT" value="method" />
251
+      <method v="2">
252
+        <option name="Make" enabled="true" />
253
+      </method>
254
+    </configuration>
255
+    <configuration name="MySetTest.testAdd" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
256
+      <module name="generics" />
257
+      <option name="PACKAGE_NAME" value="" />
258
+      <option name="MAIN_CLASS_NAME" value="MySetTest" />
259
+      <option name="METHOD_NAME" value="testAdd" />
260
+      <option name="TEST_OBJECT" value="method" />
261
+      <method v="2">
262
+        <option name="Make" enabled="true" />
263
+      </method>
264
+    </configuration>
265
+    <configuration name="MySetTest.testAddRepeat" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
266
+      <module name="generics" />
267
+      <option name="PACKAGE_NAME" value="" />
268
+      <option name="MAIN_CLASS_NAME" value="MySetTest" />
269
+      <option name="METHOD_NAME" value="testAddRepeat" />
270
+      <option name="TEST_OBJECT" value="method" />
271
+      <method v="2">
272
+        <option name="Make" enabled="true" />
273
+      </method>
274
+    </configuration>
275
+    <list>
276
+      <item itemvalue="JUnit.MyArrayListTest.testContains" />
277
+      <item itemvalue="JUnit.MyArrayListTest" />
278
+      <item itemvalue="JUnit.MySetTest.testAdd" />
279
+      <item itemvalue="JUnit.MySetTest.testAddRepeat" />
280
+      <item itemvalue="JUnit.MyArrayListTest.testAdd" />
281
+    </list>
282
+    <recent_temporary>
283
+      <list>
284
+        <item itemvalue="JUnit.MyArrayListTest" />
285
+        <item itemvalue="JUnit.MyArrayListTest.testAdd" />
286
+        <item itemvalue="JUnit.MySetTest.testAddRepeat" />
287
+        <item itemvalue="JUnit.MySetTest.testAdd" />
288
+        <item itemvalue="JUnit.MyArrayListTest.testContains" />
289
+      </list>
290
+    </recent_temporary>
291
+  </component>
292
+  <component name="SvnConfiguration">
293
+    <configuration />
294
+  </component>
295
+  <component name="TaskManager">
296
+    <task active="true" id="Default" summary="Default task">
297
+      <changelist id="193c026b-008e-46d5-934f-1d714dc4364a" name="Default Changelist" comment="" />
298
+      <created>1542149032268</created>
299
+      <option name="number" value="Default" />
300
+      <option name="presentableId" value="Default" />
301
+      <updated>1542149032268</updated>
302
+      <workItem from="1542149033946" duration="6517000" />
303
+      <workItem from="1542156255433" duration="22880000" />
304
+      <workItem from="1542573276328" duration="7000" />
305
+      <workItem from="1542592011423" duration="364000" />
306
+    </task>
307
+    <servers />
308
+  </component>
309
+  <component name="TestHistory">
310
+    <history-entry file="MyArrayListTest_testContains - 2018.11.13 at 20h 46m 28s.xml">
311
+      <configuration name="MyArrayListTest.testContains" configurationId="JUnit" />
312
+    </history-entry>
313
+    <history-entry file="MyArrayListTest - 2018.11.13 at 21h 18m 05s.xml">
314
+      <configuration name="MyArrayListTest" configurationId="JUnit" />
315
+    </history-entry>
316
+    <history-entry file="MySetTest_testAdd - 2018.11.14 at 00h 11m 40s.xml">
317
+      <configuration name="MySetTest.testAdd" configurationId="JUnit" />
318
+    </history-entry>
319
+    <history-entry file="MySetTest_testAdd - 2018.11.14 at 00h 15m 00s.xml">
320
+      <configuration name="MySetTest.testAdd" configurationId="JUnit" />
321
+    </history-entry>
322
+    <history-entry file="MySetTest_testAddRepeat - 2018.11.14 at 15h 22m 10s.xml">
323
+      <configuration name="MySetTest.testAddRepeat" configurationId="JUnit" />
324
+    </history-entry>
325
+    <history-entry file="MyArrayListTest - 2018.11.14 at 19h 33m 53s.xml">
326
+      <configuration name="MyArrayListTest" configurationId="JUnit" />
327
+    </history-entry>
328
+    <history-entry file="MyArrayListTest - 2018.11.14 at 23h 53m 55s.xml">
329
+      <configuration name="MyArrayListTest" configurationId="JUnit" />
330
+    </history-entry>
331
+    <history-entry file="MyArrayListTest_testAdd - 2018.11.14 at 23h 54m 51s.xml">
332
+      <configuration name="MyArrayListTest.testAdd" configurationId="JUnit" />
333
+    </history-entry>
334
+    <history-entry file="MyArrayListTest - 2018.11.14 at 23h 56m 55s.xml">
335
+      <configuration name="MyArrayListTest" configurationId="JUnit" />
336
+    </history-entry>
337
+    <history-entry file="MyArrayListTest - 2018.11.14 at 23h 58m 38s.xml">
338
+      <configuration name="MyArrayListTest" configurationId="JUnit" />
339
+    </history-entry>
340
+  </component>
341
+  <component name="TimeTrackingManager">
342
+    <option name="totallyTimeSpent" value="29768000" />
343
+  </component>
344
+  <component name="ToolWindowManager">
345
+    <frame x="0" y="23" width="1440" height="797" extended-state="0" />
346
+    <editor active="true" />
347
+    <layout>
348
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.3304721" />
349
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
350
+      <window_info id="Image Layers" order="2" />
351
+      <window_info id="Designer" order="3" />
352
+      <window_info id="UI Designer" order="4" />
353
+      <window_info id="Capture Tool" order="5" />
354
+      <window_info id="Favorites" order="6" side_tool="true" />
355
+      <window_info anchor="bottom" id="Message" order="0" />
356
+      <window_info anchor="bottom" id="Find" order="1" />
357
+      <window_info anchor="bottom" id="Run" order="2" weight="0.40120482" />
358
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
359
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
360
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
361
+      <window_info anchor="bottom" id="TODO" order="6" />
362
+      <window_info anchor="bottom" id="Version Control" order="7" show_stripe_button="false" />
363
+      <window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
364
+      <window_info anchor="bottom" id="Terminal" order="9" />
365
+      <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
366
+      <window_info anchor="bottom" id="Messages" order="11" weight="0.32771084" />
367
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
368
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
369
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
370
+      <window_info anchor="right" id="Palette" order="3" />
371
+      <window_info anchor="right" id="Capture Analysis" order="4" />
372
+      <window_info anchor="right" id="Database" order="5" />
373
+      <window_info anchor="right" id="Theme Preview" order="6" />
374
+      <window_info anchor="right" id="Palette&#9;" order="7" />
375
+      <window_info anchor="right" id="Maven Projects" order="8" />
376
+    </layout>
377
+  </component>
378
+  <component name="TypeScriptGeneratedFilesManager">
379
+    <option name="version" value="1" />
380
+  </component>
381
+  <component name="VcsContentAnnotationSettings">
382
+    <option name="myLimit" value="2678400000" />
383
+  </component>
384
+  <component name="editorHistoryManager">
385
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/src.zip!/java/lang/reflect/Array.java">
386
+      <provider selected="true" editor-type-id="text-editor">
387
+        <state relative-caret-position="225">
388
+          <caret line="38" column="6" selection-start-line="38" selection-start-column="6" selection-end-line="38" selection-end-column="6" />
389
+        </state>
390
+      </provider>
391
+    </entry>
392
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/src.zip!/java/util/ArrayList.java">
393
+      <provider selected="true" editor-type-id="text-editor">
394
+        <state relative-caret-position="1200">
395
+          <caret line="106" column="13" selection-start-line="106" selection-start-column="13" selection-end-line="106" selection-end-column="13" />
396
+        </state>
397
+      </provider>
398
+    </entry>
399
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/lib/tools.jar!/com/sun/tools/javac/util/ArrayUtils.class">
400
+      <provider selected="true" editor-type-id="text-editor">
401
+        <state relative-caret-position="75">
402
+          <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
403
+        </state>
404
+      </provider>
405
+    </entry>
406
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/src.zip!/java/util/List.java">
407
+      <provider selected="true" editor-type-id="text-editor">
408
+        <state relative-caret-position="261">
409
+          <caret line="144" column="12" selection-start-line="144" selection-start-column="12" selection-end-line="144" selection-end-column="12" />
410
+        </state>
411
+      </provider>
412
+    </entry>
413
+    <entry file="file://$PROJECT_DIR$/src/test/java/.deleteme">
414
+      <provider selected="true" editor-type-id="text-editor" />
415
+    </entry>
416
+    <entry file="file://$PROJECT_DIR$/src/main/java/MyArrayList.java">
417
+      <provider selected="true" editor-type-id="text-editor">
418
+        <state relative-caret-position="1815">
419
+          <caret line="121" column="6" selection-start-line="121" selection-start-column="6" selection-end-line="121" selection-end-column="6" />
420
+          <folding>
421
+            <element signature="imports" expanded="true" />
422
+          </folding>
423
+        </state>
424
+      </provider>
425
+    </entry>
426
+    <entry file="file://$PROJECT_DIR$/src/main/java/MySet.java">
427
+      <provider selected="true" editor-type-id="text-editor">
428
+        <state relative-caret-position="510">
429
+          <caret line="37" column="26" selection-start-line="37" selection-start-column="26" selection-end-line="37" selection-end-column="26" />
430
+        </state>
431
+      </provider>
432
+    </entry>
433
+    <entry file="file://$PROJECT_DIR$/src/test/java/TestMyArrayList.java">
434
+      <provider selected="true" editor-type-id="text-editor">
435
+        <state relative-caret-position="105">
436
+          <caret line="7" column="28" selection-start-line="7" selection-start-column="28" selection-end-line="7" selection-end-column="28" />
437
+          <folding>
438
+            <element signature="imports" expanded="true" />
439
+          </folding>
440
+        </state>
441
+      </provider>
442
+    </entry>
443
+    <entry file="file://$PROJECT_DIR$/src/test/java/MySetTest.java">
444
+      <provider selected="true" editor-type-id="text-editor">
445
+        <state relative-caret-position="60">
446
+          <caret line="9" selection-start-line="9" selection-end-line="9" />
447
+        </state>
448
+      </provider>
449
+    </entry>
450
+  </component>
451
+  <component name="masterDetails">
452
+    <states>
453
+      <state key="ArtifactsStructureConfigurable.UI">
454
+        <settings>
455
+          <artifact-editor />
456
+          <splitter-proportions>
457
+            <option name="proportions">
458
+              <list>
459
+                <option value="0.2" />
460
+              </list>
461
+            </option>
462
+          </splitter-proportions>
463
+        </settings>
464
+      </state>
465
+      <state key="FacetStructureConfigurable.UI">
466
+        <settings>
467
+          <last-edited>No facets are configured</last-edited>
468
+          <splitter-proportions>
469
+            <option name="proportions">
470
+              <list>
471
+                <option value="0.2" />
472
+              </list>
473
+            </option>
474
+          </splitter-proportions>
475
+        </settings>
476
+      </state>
477
+      <state key="GlobalLibrariesConfigurable.UI">
478
+        <settings>
479
+          <splitter-proportions>
480
+            <option name="proportions">
481
+              <list>
482
+                <option value="0.2" />
483
+              </list>
484
+            </option>
485
+          </splitter-proportions>
486
+        </settings>
487
+      </state>
488
+      <state key="JdkListConfigurable.UI">
489
+        <settings>
490
+          <last-edited>1.8</last-edited>
491
+          <splitter-proportions>
492
+            <option name="proportions">
493
+              <list>
494
+                <option value="0.2" />
495
+              </list>
496
+            </option>
497
+          </splitter-proportions>
498
+        </settings>
499
+      </state>
500
+      <state key="ModuleStructureConfigurable.UI">
501
+        <settings>
502
+          <last-edited>generics</last-edited>
503
+          <splitter-proportions>
504
+            <option name="proportions">
505
+              <list>
506
+                <option value="0.2" />
507
+                <option value="0.6" />
508
+              </list>
509
+            </option>
510
+          </splitter-proportions>
511
+        </settings>
512
+      </state>
513
+      <state key="ProjectJDKs.UI">
514
+        <settings>
515
+          <last-edited>1.8</last-edited>
516
+          <splitter-proportions>
517
+            <option name="proportions">
518
+              <list>
519
+                <option value="0.2" />
520
+              </list>
521
+            </option>
522
+          </splitter-proportions>
523
+        </settings>
524
+      </state>
525
+      <state key="ProjectLibrariesConfigurable.UI">
526
+        <settings>
527
+          <last-edited>Maven: junit:junit:4.12</last-edited>
528
+          <splitter-proportions>
529
+            <option name="proportions">
530
+              <list>
531
+                <option value="0.2" />
532
+              </list>
533
+            </option>
534
+          </splitter-proportions>
535
+        </settings>
536
+      </state>
537
+    </states>
538
+  </component>
539
+</project>

+ 16
- 0
generics.iml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
4
+    <output url="file://$MODULE_DIR$/target/classes" />
5
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
6
+    <content url="file://$MODULE_DIR$">
7
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9
+      <excludeFolder url="file://$MODULE_DIR$/target" />
10
+    </content>
11
+    <orderEntry type="inheritedJdk" />
12
+    <orderEntry type="sourceFolder" forTests="false" />
13
+    <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
14
+    <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
15
+  </component>
16
+</module>

+ 124
- 0
src/main/java/MyArrayList.java 查看文件

1
+
2
+import java.util.Arrays;
3
+
4
+import java.util.List;
5
+
6
+
7
+public class MyArrayList<T> {
8
+     private T[] arr;
9
+     private int size;
10
+
11
+     public MyArrayList() { this(0); }
12
+
13
+     public MyArrayList(int capacity) {
14
+          arr = (T[])new Object[capacity];
15
+          size = 0;
16
+     }
17
+
18
+     public Integer size(){ return size; }
19
+
20
+     public void setSize(int size){ this.size = size; }
21
+
22
+     public boolean isEmpty(){ return (size == 0); }
23
+
24
+     public void clear(){
25
+          arr = (T[])new Object[0];
26
+          setSize(0);
27
+     }
28
+
29
+     public void add(T ...valsToAdd){
30
+          T[] merge = Arrays.copyOf(arr,(size + valsToAdd.length));
31
+          for(int i = size, j = 0; i < merge.length; i++, j++, size++)
32
+               merge[i] = valsToAdd[j];
33
+          arr = merge;
34
+     }
35
+
36
+     public T[] append(T val){
37
+          T[] newArr = Arrays.copyOf(arr,size + 1);
38
+          newArr[size] = val;
39
+          size++;
40
+          return newArr;
41
+     }
42
+
43
+     public void add(int index, T valToAdd) throws IllegalArgumentException{
44
+          try {
45
+               addOnCondition(index, valToAdd);
46
+          } catch (IllegalArgumentException e){
47
+               System.out.println("Illegal argument Exception");
48
+          }
49
+     }
50
+
51
+     private void addOnCondition(int index, T valToAdd) {
52
+          if (size == 0 && index == 0)
53
+               add(valToAdd);
54
+          else if(index >= size)
55
+               arr = append(valToAdd);
56
+          else
57
+               arr = addValToArray(index, valToAdd);
58
+     }
59
+
60
+     private T[] addValToArray(int index, T valToAdd) {
61
+          T[] firstArr = Arrays.copyOf(arr,size + 1);
62
+          T[] secondArr = Arrays.copyOfRange(arr,index,size);
63
+          concatArrays(index, valToAdd, firstArr, secondArr);
64
+          return firstArr;
65
+     }
66
+
67
+     private void concatArrays(int index, T valToAdd, T[] firstArr, T[] secondArr) {
68
+          for (int i = 0, j = 0; i < firstArr.length; i++) {
69
+               if (i == index)
70
+                    firstArr[index] = valToAdd;
71
+               else if(i > index){
72
+                    firstArr[i] = secondArr[j];
73
+                    j++;
74
+               }
75
+          }
76
+     }
77
+
78
+     public T get(int index){
79
+          T getVal = null;
80
+          for (int i = 0; i < size; i++)
81
+               if(i == index)
82
+                    getVal = arr[i];
83
+          return getVal;
84
+     }
85
+
86
+     public boolean contains(T valToFind){
87
+          for(T val : arr)
88
+               if(val.equals(valToFind))
89
+                    return true;
90
+          return false;
91
+     }
92
+
93
+     public void remove(T valueToRemove){
94
+          Integer occ = getNumberOfOccurrences(valueToRemove);
95
+          T[] array = Arrays.copyOf(arr, size-occ);
96
+          evalRemove(valueToRemove, array);
97
+          arr = array;
98
+     }
99
+
100
+     public Integer getNumberOfOccurrences(T valueToEvaluate){
101
+          Integer count = 0;
102
+          for(int i = 0; i < size; i++)
103
+               count += (valueToEvaluate.equals(arr[i])) ? 1 : 0;
104
+          return count;
105
+     }
106
+
107
+     private void evalRemove(T valueToRemove, T[] array){
108
+          int i = 0;
109
+          for(T val : arr)
110
+               if(!val.equals(valueToRemove)){
111
+                    array[i] = val;
112
+                    i++;
113
+               }
114
+     }
115
+
116
+     public void set(int index, T updatedVal) throws ArrayIndexOutOfBoundsException{
117
+          try{
118
+               arr[index] = updatedVal;
119
+          } catch (ArrayIndexOutOfBoundsException e) {
120
+               System.out.println("Index not contained in array list...");
121
+          }
122
+     }
123
+
124
+}

+ 61
- 0
src/main/java/MySet.java 查看文件

1
+
2
+import java.util.Arrays;
3
+import java.util.Collection;
4
+import java.util.HashSet;
5
+import java.util.Set;
6
+
7
+public class MySet <T> {
8
+    private T[] ogArr;
9
+    private int size;
10
+
11
+    public MySet() {
12
+        this.ogArr = (T[]) new Object[0];
13
+        this.size = 0;
14
+    }
15
+
16
+    public int size() { return size; }
17
+
18
+    public T get(int index) { return ogArr[index]; }
19
+
20
+    public boolean isEmpty() { return (size() == 0); }
21
+
22
+    public void clear() {
23
+        ogArr =  Arrays.copyOf(ogArr,0);
24
+        size = 0;
25
+    }
26
+
27
+    public void add(T value) {
28
+        if (!contains(value)) {
29
+            T[] arr = Arrays.copyOf(ogArr,ogArr.length+1);
30
+            for (int i = 0; i < ogArr.length; i++)
31
+                arr[i] = ogArr[i];
32
+            arr[arr.length - 1] = value;
33
+            ogArr = arr;
34
+            size = arr.length;
35
+        }
36
+    }
37
+
38
+    public void addAll(Collection<? extends T> collection) {
39
+        for (T item : collection)
40
+            if (!contains(item))
41
+                this.add(item);
42
+    }
43
+
44
+    public boolean contains(T value) {
45
+        for (T item : ogArr)
46
+            if (item.equals(value))
47
+                return true;
48
+        return false;
49
+    }
50
+
51
+    public boolean containsAll(Collection<? extends T> collection) {
52
+        int trueVals = 0;
53
+        for (T item : collection)
54
+            for (int i = 0; i < ogArr.length ; i++)
55
+                if (item.equals(ogArr[i]))
56
+                    trueVals++;
57
+        return (trueVals == collection.size());
58
+    }
59
+}
60
+
61
+

+ 88
- 0
src/test/java/MySetTest.java 查看文件

1
+import org.junit.Assert;
2
+import org.junit.Test;
3
+
4
+import java.util.ArrayList;
5
+import java.util.Arrays;
6
+import java.util.HashSet;
7
+import java.util.Set;
8
+
9
+public class MySetTest {
10
+
11
+    MySet<Integer> set = new MySet<>();
12
+
13
+    @Test
14
+    public void testAdd() {
15
+        // : When
16
+        set.add(1);
17
+        set.add(2);
18
+        set.add(3);
19
+        set.add(3);
20
+        Integer expected = 3;
21
+        Integer actual = set.size();
22
+        // : Then
23
+        Assert.assertEquals(expected, actual);
24
+    }
25
+
26
+    @Test
27
+    public void testAddAll() {
28
+        // : Given
29
+        ArrayList<Integer> addArray = new ArrayList<>();
30
+        // : When
31
+        set.add(1);
32
+        set.add(2);
33
+        addArray.add(3);
34
+        addArray.add(3);
35
+        addArray.add(4);
36
+        set.addAll(addArray);
37
+        int expected = 4;
38
+        int actual = set.size();
39
+        // : Then
40
+        Assert.assertEquals(expected, actual);
41
+    }
42
+
43
+    @Test
44
+    public void testClear() {
45
+        // : When
46
+        set.add(1);
47
+        set.add(2);
48
+        set.clear();
49
+        int expected = 0;
50
+        int actual = set.size();
51
+        // : Then
52
+        Assert.assertEquals(expected, actual);
53
+    }
54
+
55
+    @Test
56
+    public void testContains() {
57
+        // : When
58
+        set.add(1);
59
+        set.add(2);
60
+        // : Then
61
+        Assert.assertTrue(set.contains(1));
62
+    }
63
+
64
+    @Test
65
+    public void testContainsAll() {
66
+        // : Given
67
+        ArrayList<Integer> list = new ArrayList<>();
68
+        // : Then
69
+        set.add(1);
70
+        set.add(2);
71
+        set.add(3);
72
+        list.add(2);
73
+        list.add(3);
74
+        // : Then
75
+        Assert.assertTrue(set.containsAll(list));
76
+    }
77
+
78
+    @Test
79
+    public void testIsEmpty() {
80
+        Assert.assertTrue(set.isEmpty());
81
+    }
82
+}
83
+
84
+
85
+
86
+
87
+    
88
+

+ 155
- 0
src/test/java/TestMyArrayList.java 查看文件

1
+import org.junit.Assert;
2
+import org.junit.Before;
3
+import org.junit.Test;
4
+
5
+import java.lang.reflect.Array;
6
+import java.util.ArrayList;
7
+
8
+public class TestMyArrayList {
9
+
10
+    @Test
11
+    public void testAddVarArgs() {
12
+        // : Given
13
+        MyArrayList<Long> arrList = new MyArrayList<>();
14
+        // : When
15
+        Integer exp = 2;
16
+        arrList.add(4L, 10L);
17
+        Integer act = arrList.size();
18
+        // : Then
19
+        Assert.assertEquals(exp, act);
20
+    }
21
+
22
+    @Test
23
+    public void testAddVarArgsCap() {
24
+        // : Given
25
+        MyArrayList<Long> arrList = new MyArrayList<>(10);
26
+        // : When
27
+        Integer exp = 2;
28
+        arrList.add(4L, 10L);
29
+        Integer act = arrList.size();
30
+        // : Then
31
+        Assert.assertEquals(exp, act);
32
+    }
33
+
34
+    @Test
35
+    public void testAddAtIndex0(){
36
+        // : Given
37
+        MyArrayList<Long> arrList = new MyArrayList<>();
38
+        // : When
39
+        Long addedVal = 8L;
40
+        arrList.add(0,addedVal);
41
+        Long act = arrList.get(0);
42
+        // : Then
43
+        Assert.assertEquals(act, addedVal);
44
+    }
45
+
46
+    @Test
47
+    public void testAppend(){
48
+        // : Given
49
+        MyArrayList<Long> arrList = new MyArrayList<>();
50
+        // : When
51
+        Long addedVal = 8L;
52
+        arrList.add(4L,10L,12L,15L);
53
+        arrList.add(4,addedVal);
54
+        Long act = arrList.get(4);
55
+        // : Then
56
+        Assert.assertEquals(act, addedVal);
57
+    }
58
+
59
+    @Test
60
+    public void testAddAtIndex(){
61
+        // : Given
62
+        MyArrayList<Long> arrList = new MyArrayList<>();
63
+        // : When
64
+        Long addedVal = 8L;
65
+        arrList.add(4L,10L,12L,15L);
66
+        arrList.add(2,addedVal);
67
+        Long act = arrList.get(2);
68
+        // : Then
69
+        Assert.assertEquals(act, addedVal);
70
+    }
71
+
72
+    @Test
73
+    public void testGet(){
74
+        // : Given
75
+        MyArrayList<String> arrList = new MyArrayList<>();
76
+        // : When
77
+        String exp = "def";
78
+        arrList.add("abc","def","ghi");
79
+        String act = arrList.get(1);
80
+        // : Then
81
+        Assert.assertEquals(exp, act);
82
+    }
83
+
84
+    @Test
85
+    public void testContains(){
86
+        // : Given
87
+        MyArrayList<Double> arrList = new MyArrayList<>();
88
+        // : When
89
+        arrList.add(1.0,2.0,5.0,10.0);
90
+        boolean act = arrList.contains(5.0);
91
+        // : Then
92
+        Assert.assertTrue(act);
93
+    }
94
+
95
+    @Test
96
+    public void testRemove(){
97
+        // : Given
98
+        MyArrayList<Float> arrList = new MyArrayList<>();
99
+        // : When
100
+        arrList.add(1.0f,2.0f,5.0f,10.0f);
101
+        arrList.remove(5.0f);
102
+        boolean act = arrList.contains(5.0f);
103
+        // : Then
104
+        Assert.assertFalse(act);
105
+    }
106
+
107
+    @Test
108
+    public void testClear(){
109
+        // : Given
110
+        MyArrayList<Double> arrList = new MyArrayList<>();
111
+        Integer exp = 0;
112
+        // : When
113
+        arrList.add(1.0,2.0,5.0,10.0);
114
+        arrList.clear();
115
+        Integer act = arrList.size();
116
+        // : Then
117
+        Assert.assertEquals(exp,act);
118
+    }
119
+
120
+    @Test
121
+    public void testIsEmptyWithFullList(){
122
+        // : Given
123
+        MyArrayList<Float> arrList = new MyArrayList<>();
124
+        // : When
125
+        arrList.add(1.0f,2.0f,5.0f,10.0f);
126
+        boolean act = arrList.isEmpty();
127
+        // : Then
128
+        Assert.assertFalse(act);
129
+    }
130
+
131
+    @Test
132
+    public void testIsEmptyWithEmptyList(){
133
+        // : Given
134
+        MyArrayList<Float> arrList = new MyArrayList<>();
135
+        // : When
136
+        arrList.add(1.0f,2.0f,5.0f,10.0f);
137
+        arrList.clear();
138
+        boolean act = arrList.isEmpty();
139
+        // : Then
140
+        Assert.assertTrue(act);
141
+    }
142
+
143
+    @Test
144
+    public void testSet(){
145
+        // : Given
146
+        MyArrayList<Integer> arrList = new MyArrayList<>();
147
+        // : When
148
+        arrList.add(2,4,5,8,10);
149
+        arrList.set(2,6);
150
+        Integer act = arrList.get(2);
151
+        Integer exp = 6;
152
+        // : Then
153
+        Assert.assertEquals(act,exp);
154
+    }
155
+}