You need to develop a utility (example other java app) that you are not going to distribute that encodes your array of strings as a cyphered or at least ofuscated array of bytes or chars or as a String. If you need to edit the list you are going to edit and update this not-released app.
Then run it and get the encoded/encrypted data and copy that data into your released app, so it became hidden between all the code. You can even split the encoded data in several different locations.
Then implement in your released app the code for extract and decode a word from that list (only one at a time, perform the actions your need and go for the nextone, if you decode all the words you are exposing the list as well, its difficult to locate because is in memory but... it will exist in decoded state.
All this does not guarantee 100% protection (as probably you are going to include decrypting keys and algorithms on your released app), but increases dramatically the difficulty to extract the whole list from your app, which I assume is that you want.
Also, do not store your encoded list into a file because usually it makes more easy to locate. If you want to use a server you need to avoid transfering the whole list (only a word at a time), you need to protect the API from abuse (too much requests) and this will be slowly than the other option, and prone to automatic extract diggers. It average the server solution is harder to implement than the firstone.