Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,120 --> 00:00:05,250
Now we're going to finalize the main class, the next thing we got to do is add a method that returns
2
00:00:05,250 --> 00:00:10,050
every transaction from transactions that text but as a transaction object.
3
00:00:10,650 --> 00:00:19,440
So what we'll do is define a public static method that returns an array list of transaction objects.
4
00:00:20,850 --> 00:00:23,670
The method is going to be called return transactions.
5
00:00:26,450 --> 00:00:29,640
And we already know it's going to throw a file not found exception.
6
00:00:29,660 --> 00:00:30,980
So we'll throw it right now.
7
00:00:31,980 --> 00:00:32,340
OK.
8
00:00:33,960 --> 00:00:37,230
First thing we'll do is create a new object of the Phalen bitstream class.
9
00:00:41,110 --> 00:00:43,150
That connects to the transactions file.
10
00:00:46,910 --> 00:00:50,420
Then we'll create a new object of the scanner class.
11
00:00:52,710 --> 00:00:54,870
That receives input from the foreign input stream.
12
00:00:57,430 --> 00:00:57,760
OK.
13
00:00:58,000 --> 00:01:03,040
And now what we want to do is create the array list of transaction objects that were eventually going
14
00:01:03,040 --> 00:01:04,930
to return array list.
15
00:01:05,980 --> 00:01:06,880
Transaction.
16
00:01:10,050 --> 00:01:11,130
Transactions.
17
00:01:12,640 --> 00:01:13,530
Is equal to an.
18
00:01:15,310 --> 00:01:20,290
Is equal to a new ArrayList that can store transaction objects.
19
00:01:23,750 --> 00:01:29,150
And now what I want to do is create a while loop that runs through every single line in the transactions
20
00:01:29,150 --> 00:01:29,480
file.
21
00:01:30,050 --> 00:01:33,170
So while scanned as a next line.
22
00:01:35,130 --> 00:01:39,360
And as long as there is a next line, we're going to pick it up, scanned our next line.
23
00:01:39,960 --> 00:01:45,060
And if you look back at transactions dot text, we can split every line into four values.
24
00:01:45,070 --> 00:01:46,860
They're all separated based on a comma.
25
00:01:46,870 --> 00:01:48,060
So here we can say scanned.
26
00:01:48,060 --> 00:01:49,650
Our next line split.
27
00:01:50,750 --> 00:01:52,140
Around a comma.
28
00:01:52,760 --> 00:01:58,400
And what that's going to do is return an array of four string values for each line.
29
00:01:59,710 --> 00:02:06,600
And then using these values, we can add a new transaction object to the transactions ArrayList transactions
30
00:02:06,890 --> 00:02:10,600
and there will create a new transaction objects.
31
00:02:11,410 --> 00:02:16,540
Now if you look back at the transaction constructor, first, we're expecting an enum type.
32
00:02:17,580 --> 00:02:20,100
We'll have to say transaction type.
33
00:02:21,210 --> 00:02:27,060
And that tape can be one of two constants withdraw or deposit, we can get one of these constants by
34
00:02:27,060 --> 00:02:29,790
using the value of index one.
35
00:02:30,180 --> 00:02:33,180
So here we'll say transaction type the value of.
36
00:02:34,670 --> 00:02:36,500
Values at index one.
37
00:02:39,090 --> 00:02:44,130
The next parameter is long time stamp, which is that index is zero.
38
00:02:44,670 --> 00:02:49,500
Here will say values at index zero, but the constructor expects a long.
39
00:02:49,530 --> 00:02:51,450
So what will have to do is say.
40
00:02:52,770 --> 00:02:55,260
Long, dark, past long.
41
00:02:55,650 --> 00:02:58,560
And we're going to pass along out of this string value.
42
00:03:01,930 --> 00:03:04,230
OK, next parameter is a string ID.
43
00:03:05,290 --> 00:03:07,900
We can just say values at index to.
44
00:03:09,030 --> 00:03:14,580
Values at Index three, make sure to pass a double from the following string.
45
00:03:22,110 --> 00:03:23,450
I think we're missing a bracket.
46
00:03:27,600 --> 00:03:28,410
And that's pretty much it.
47
00:03:28,470 --> 00:03:33,840
That's why Loop should populate the transactions array list with three hundred and fifty two transactions.
48
00:03:34,200 --> 00:03:37,680
But before we return, the transactions are our list.
49
00:03:38,010 --> 00:03:39,120
We want to sort it.
50
00:03:39,750 --> 00:03:42,060
We'll say collections does sort.
51
00:03:43,660 --> 00:03:47,860
And we will sort the transactions are a list based on time stamp.
52
00:03:48,760 --> 00:03:49,660
Close, Skinner.
53
00:03:50,640 --> 00:03:53,160
And return transactions.
54
00:04:02,670 --> 00:04:08,190
OK, before we move on, we want to make sure this method works by going over to men and instead of
55
00:04:08,190 --> 00:04:11,490
calling return accounts, call or return transactions.
56
00:04:11,820 --> 00:04:15,150
Switch this to an array a list of transactions.
57
00:04:16,850 --> 00:04:17,240
OK.
58
00:04:17,660 --> 00:04:19,910
At a break point, debug the runtime.
59
00:04:22,140 --> 00:04:27,770
If this works, we should get an array list of three hundred and fifty two sorted transactions.
60
00:04:30,410 --> 00:04:31,820
Seems like it works.
61
00:04:33,360 --> 00:04:35,460
Are they all sorted based on time stamp?
62
00:04:35,490 --> 00:04:36,750
Indeed, they are.
63
00:04:36,780 --> 00:04:38,730
This is wonderful.
64
00:04:40,600 --> 00:04:40,990
OK.
65
00:04:45,010 --> 00:04:50,110
So we were able to return every single transaction from the transactions file, but as an object, the
66
00:04:50,110 --> 00:04:53,510
next step is to create a method that executes transactions.
67
00:04:54,010 --> 00:05:01,030
So I'll create a public static void method called run transactions.
68
00:05:02,160 --> 00:05:07,020
They receives the array list of transactions we want to execute.
69
00:05:11,350 --> 00:05:17,320
And inside the function, what I'm going to do is run through every single transaction in the transactions
70
00:05:17,320 --> 00:05:17,980
array list.
71
00:05:18,490 --> 00:05:23,110
And here I'll say bank, don't execute transaction transaction.
72
00:05:24,130 --> 00:05:26,560
And it's really nice if everything is coming together.
73
00:05:30,640 --> 00:05:34,690
If you look back at transactions, not text, every transaction has an ID.
74
00:05:35,650 --> 00:05:40,810
The ID determines in which account this particular transaction is going to take place.
75
00:05:41,320 --> 00:05:47,530
This transaction is going to take place in the account 73 DB, which would be.
76
00:05:51,080 --> 00:05:52,250
A checking account.
77
00:05:55,610 --> 00:06:00,980
So what I want to do in Maine is define a method that gets every single transaction that belongs to
78
00:06:00,980 --> 00:06:04,790
a particular account and print the transaction history.
79
00:06:06,050 --> 00:06:10,640
The method is public static void transaction history.
80
00:06:12,080 --> 00:06:18,230
It receives a strong aid, it receives the ID of the account, whose transactions we want to print.
81
00:06:19,520 --> 00:06:23,390
And there's really nothing meaningful in this function, it's all aesthetics, and I left you all the
82
00:06:23,390 --> 00:06:26,540
aesthetics inside of learning the parts, so we'll copy it over.
83
00:06:27,820 --> 00:06:29,440
Copy over this entire comment.
84
00:06:31,620 --> 00:06:35,760
And first thing we want to print is this fancy message.
85
00:06:39,370 --> 00:06:40,480
Six out.
86
00:06:43,060 --> 00:06:44,090
And your quotes.
87
00:06:47,090 --> 00:06:51,200
Next thing we want to print is every transaction that corresponds to the I.D..
88
00:06:53,040 --> 00:06:55,200
So what we want to do is create a for loop.
89
00:06:57,490 --> 00:07:04,330
Here we'll call banks get transactions will pass and the account ID, whose transactions we want to
90
00:07:04,330 --> 00:07:04,630
get.
91
00:07:05,110 --> 00:07:09,910
So this is going to return an array of transactions for a particular account.
92
00:07:10,480 --> 00:07:16,600
And so here we want to run through every single transaction in this array of transactions.
93
00:07:21,020 --> 00:07:24,070
And for every transaction that we run through, we're going to wait.
94
00:07:24,140 --> 00:07:25,760
Three hundred milliseconds.
95
00:07:30,610 --> 00:07:32,260
And print the following message.
96
00:07:42,700 --> 00:07:45,280
OK, now we just got to print the following messages.
97
00:07:49,210 --> 00:07:51,280
Print after tax.
98
00:07:59,970 --> 00:08:05,430
And here we need to fill our string with an account that corresponds to the ID, so we'll just say bank
99
00:08:06,060 --> 00:08:07,200
get accounts.
100
00:08:08,330 --> 00:08:08,630
I'd.
101
00:08:16,550 --> 00:08:22,130
So ultimately, all this function is doing is running through all of the transactions for a particular
102
00:08:22,130 --> 00:08:22,700
account.
103
00:08:26,130 --> 00:08:29,340
And here we're getting that account and printing, it's two string.
104
00:08:30,690 --> 00:08:35,669
At this point, we're pretty much done, all we got to do is copy this inside of our main method and
105
00:08:35,669 --> 00:08:36,539
test our code.
106
00:08:36,690 --> 00:08:37,710
I can't wait.
107
00:08:47,120 --> 00:08:49,200
So there's nothing too crazy going on here.
108
00:08:49,220 --> 00:08:53,000
First, we're just grabbing every single account from the accounts that tax file.
109
00:08:53,240 --> 00:08:56,660
We're loading all of these accounts into the bank object.
110
00:08:57,080 --> 00:09:00,470
Then we're grabbing every single transaction from any transactions file.
111
00:09:00,830 --> 00:09:04,220
We're executing on any transactions from the bank object.
112
00:09:04,580 --> 00:09:10,580
And then after all, the withdrawals and deposits have been made, the bank deduct taxes and then we're
113
00:09:10,580 --> 00:09:13,280
running through every single account in the accounts ArrayList.
114
00:09:13,430 --> 00:09:18,350
We're printing the two string of that account and then we're printing the history of all transactions
115
00:09:18,350 --> 00:09:19,940
that occurred at this account.
116
00:09:20,660 --> 00:09:22,100
I can't wait to test this out.
117
00:09:22,110 --> 00:09:23,390
Let's just press the run button.
118
00:09:30,010 --> 00:09:32,110
And this is looking pretty good.
119
00:09:32,140 --> 00:09:35,830
I really hope you enjoyed this challenge and learned a lot by trying to solve it.
120
00:09:36,100 --> 00:09:41,740
This is definitely the hardest challenge in this course, and this wraps up inheritance and polymorphism.
10961
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.