File tree Expand file tree Collapse file tree 2 files changed +88
-0
lines changed Expand file tree Collapse file tree 2 files changed +88
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ *
3
+ */
4
+ package com .webwirtue .sample ;
5
+
6
+ /**
7
+ * @author ankitkumar
8
+ *
9
+ */
10
+ public interface IOrderedJobs {
11
+
12
+ void registerIndependent (char c );
13
+
14
+ String getSortedJobNames ();
15
+
16
+ void register (char c , char d );
17
+
18
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ *
3
+ */
4
+ package com .webwirtue .sample ;
5
+
6
+ import java .util .ArrayList ;
7
+ import java .util .HashMap ;
8
+ import java .util .LinkedList ;
9
+ import java .util .List ;
10
+ import java .util .Map ;
11
+
12
+ /**
13
+ * @author ankitkumar
14
+ *
15
+ */
16
+ public class OrderedJobs implements IOrderedJobs {
17
+
18
+ private List <Character > jobs =new LinkedList <>();
19
+
20
+
21
+ @ Override
22
+ public void registerIndependent (char job ) {
23
+ int ascaiiOfLowerA =(int )'a' ;
24
+ int ascaiiOfLowerZ =(int )'z' ;
25
+ int ascaiOfJobName =(int )job ;
26
+ if (!(ascaiOfJobName >=ascaiiOfLowerA && ascaiOfJobName <=ascaiiOfLowerZ )){
27
+ throw new IllegalArgumentException ("Job Name should be a letter" );
28
+ }
29
+ if (jobs .contains (job )){
30
+ return ;
31
+ }
32
+ jobs .add (job );
33
+ }
34
+
35
+
36
+
37
+ @ Override
38
+ public String getSortedJobNames () {
39
+ // TODO Auto-generated method stub
40
+ StringBuilder result =new StringBuilder ();
41
+ for (Character job :jobs ){
42
+ result .append (Character .toString (job ));
43
+ }
44
+ return result .toString ();
45
+ }
46
+
47
+
48
+
49
+ @ Override
50
+ public void register (char job , char dependent ) {
51
+ //if original exist
52
+ if (jobs .contains (job )){
53
+ int index =jobs .indexOf (job );
54
+ if (index ==0 ){
55
+ ((LinkedList <Character >)jobs ).addFirst (dependent );
56
+ }else {
57
+ jobs .add (index -1 , dependent );
58
+ }
59
+ }else {
60
+ jobs .add (dependent );
61
+ jobs .add (job );
62
+ }
63
+
64
+ }
65
+
66
+
67
+
68
+
69
+
70
+ }
You can’t perform that action at this time.
0 commit comments