import
java.util.List;
import
java.util.ArrayList;
import
java.util.Collections;
import
java.util.Map;
import
java.util.HashMap;
public
class
GFG {
static
void
hashFunction(List<String> words, Map<Character, Character> key)
{
for
(
int
i =
0
; i < words.size(); i++) {
char
[] ch = words.get(i).toCharArray();
for
(
int
j =
0
; j < words.get(i).length(); j++) {
ch[j] = key.get(ch[j]);
}
words.set(i,
new
String(ch));
}
}
static
void
printSorted(List<String> words, String order)
{
Map<Character, Character> encode =
new
HashMap<>();
Map<Character, Character> decode =
new
HashMap<>();
for
(
int
i =
0
; i <
26
; i++) {
encode.put(order.charAt(i), (
char
)(
'a'
+ i));
decode.put((
char
)(
'a'
+ i), order.charAt(i));
}
hashFunction(words, encode);
Collections.sort(words);
hashFunction(words, decode);
for
(String x : words) {
System.out.print(x +
" "
);
}
}
public
static
void
main(String[] args)
{
List<String> words =
new
ArrayList<>() {{
add(
"word"
);
add(
"world"
);
add(
"row"
);
}};
String order =
"worldabcefghijkmnpqstuvxyz"
;
printSorted(words, order);
}
}