2015-04-20 15:36:01 -07:00
|
|
|
|
//: containers/Utilities.java
|
2015-05-29 14:18:51 -07:00
|
|
|
|
// <20>2015 MindView LLC: see Copyright.txt
|
2015-04-20 15:36:01 -07:00
|
|
|
|
// Simple demonstrations of the Collections utilities.
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import static net.mindview.util.Print.*;
|
|
|
|
|
|
|
|
|
|
public class Utilities {
|
|
|
|
|
static List<String> list = Arrays.asList(
|
|
|
|
|
"one Two three Four five six one".split(" "));
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
print(list);
|
|
|
|
|
print("'list' disjoint (Four)?: " +
|
|
|
|
|
Collections.disjoint(list,
|
|
|
|
|
Collections.singletonList("Four")));
|
|
|
|
|
print("max: " + Collections.max(list));
|
|
|
|
|
print("min: " + Collections.min(list));
|
|
|
|
|
print("max w/ comparator: " + Collections.max(list,
|
|
|
|
|
String.CASE_INSENSITIVE_ORDER));
|
|
|
|
|
print("min w/ comparator: " + Collections.min(list,
|
|
|
|
|
String.CASE_INSENSITIVE_ORDER));
|
|
|
|
|
List<String> sublist =
|
|
|
|
|
Arrays.asList("Four five six".split(" "));
|
|
|
|
|
print("indexOfSubList: " +
|
|
|
|
|
Collections.indexOfSubList(list, sublist));
|
|
|
|
|
print("lastIndexOfSubList: " +
|
|
|
|
|
Collections.lastIndexOfSubList(list, sublist));
|
|
|
|
|
Collections.replaceAll(list, "one", "Yo");
|
|
|
|
|
print("replaceAll: " + list);
|
|
|
|
|
Collections.reverse(list);
|
|
|
|
|
print("reverse: " + list);
|
|
|
|
|
Collections.rotate(list, 3);
|
|
|
|
|
print("rotate: " + list);
|
|
|
|
|
List<String> source =
|
|
|
|
|
Arrays.asList("in the matrix".split(" "));
|
|
|
|
|
Collections.copy(list, source);
|
|
|
|
|
print("copy: " + list);
|
|
|
|
|
Collections.swap(list, 0, list.size() - 1);
|
|
|
|
|
print("swap: " + list);
|
|
|
|
|
Collections.shuffle(list, new Random(47));
|
|
|
|
|
print("shuffled: " + list);
|
|
|
|
|
Collections.fill(list, "pop");
|
|
|
|
|
print("fill: " + list);
|
|
|
|
|
print("frequency of 'pop': " +
|
|
|
|
|
Collections.frequency(list, "pop"));
|
|
|
|
|
List<String> dups = Collections.nCopies(3, "snap");
|
|
|
|
|
print("dups: " + dups);
|
|
|
|
|
print("'list' disjoint 'dups'?: " +
|
|
|
|
|
Collections.disjoint(list, dups));
|
|
|
|
|
// Getting an old-style Enumeration:
|
|
|
|
|
Enumeration<String> e = Collections.enumeration(dups);
|
2015-05-05 11:20:13 -07:00
|
|
|
|
Vector<String> v = new Vector<>();
|
2015-04-20 15:36:01 -07:00
|
|
|
|
while(e.hasMoreElements())
|
|
|
|
|
v.addElement(e.nextElement());
|
|
|
|
|
// Converting an old-style Vector
|
|
|
|
|
// to a List via an Enumeration:
|
|
|
|
|
ArrayList<String> arrayList =
|
|
|
|
|
Collections.list(v.elements());
|
|
|
|
|
print("arrayList: " + arrayList);
|
|
|
|
|
}
|
|
|
|
|
} /* Output:
|
|
|
|
|
[one, Two, three, Four, five, six, one]
|
|
|
|
|
'list' disjoint (Four)?: false
|
|
|
|
|
max: three
|
|
|
|
|
min: Four
|
|
|
|
|
max w/ comparator: Two
|
|
|
|
|
min w/ comparator: five
|
|
|
|
|
indexOfSubList: 3
|
|
|
|
|
lastIndexOfSubList: 3
|
|
|
|
|
replaceAll: [Yo, Two, three, Four, five, six, Yo]
|
|
|
|
|
reverse: [Yo, six, five, Four, three, Two, Yo]
|
|
|
|
|
rotate: [three, Two, Yo, Yo, six, five, Four]
|
|
|
|
|
copy: [in, the, matrix, Yo, six, five, Four]
|
|
|
|
|
swap: [Four, the, matrix, Yo, six, five, in]
|
|
|
|
|
shuffled: [six, matrix, the, Four, Yo, five, in]
|
|
|
|
|
fill: [pop, pop, pop, pop, pop, pop, pop]
|
|
|
|
|
frequency of 'pop': 7
|
|
|
|
|
dups: [snap, snap, snap]
|
|
|
|
|
'list' disjoint 'dups'?: true
|
|
|
|
|
arrayList: [snap, snap, snap]
|
|
|
|
|
*///:~
|