Java Reference
In-Depth Information
import
import
java.util.Arrays
java.util.Arrays
;
import
import
java.util.Comparator
java.util.Comparator
;
public
public class
class
ReferencesDemo4
ReferencesDemo4
{
static
static final
final
String
[]
unsortedNames
= {
"Gosling"
,
"de Raadt"
,
"Torvalds"
,
"Ritchie"
,
"Hopper"
};
public
public static
void
main
(
String
[]
args
) {
String
[]
names
;
static
void
// Sort using
// "an Instance Method of an Arbitrary Object of a Particular Type"
names
=
unsortedNames
.
clone
();
Arrays
.
sort
(
names
,
String:
:
compareToIgnoreCase
);
dump
(
names
);
// Equivalent Lambda:
names
=
unsortedNames
.
clone
();
Arrays
.
sort
(
names
, (
str1
,
str2
) ->
str1
.
compareToIgnoreCase
(
str2
));
dump
(
names
);
// Equivalent old way:
names
=
unsortedNames
.
clone
();
Arrays
.
sort
(
names
,
new
new
Comparator
<
String
>() {
@Override
public
public
int
int
compare
(
String str1
,
String str2
) {
return
return
str1
.
compareToIgnoreCase
(
str2
);
}
});
dump
(
names
);
// Simpest way, using existing comparator
names
=
unsortedNames
.
clone
();
Arrays
.
sort
(
names
,
String
.
CASE_INSENSITIVE_ORDER
);
dump
(
names
);
}
Using “an Instance Method of an Arbitrary Object of a Particular Type,” declares a refer-
ence to the
compareToIgnoreCase
method of any
String
used in the invocation.
Shows the equivalent lambda expression.