Linux ·

thinking in java之Collections工具类的使用

代码摘自《thinking in java》4td

此实例非常好的总结了Collections的一些常见方法的使用。

package countainers;
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);
    Vector
<String> v = new Vector<String>();
   
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)?: true
max: two
min: five
max w/ comparator: two
min w/ comparator: five
indexOfSubList: -1
lastIndexOfSubList: -1
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]

参与评论