当前位置:天才代写 > tutorial > JAVA 教程 > java的collections荟萃

java的collections荟萃

2017-11-13 08:00 星期一 所属: JAVA 教程 浏览:287

下面这张表格(表一)总结了用一个荟萃能做的所有工作(亦可对Set和List做同样的工作,尽量List还提供了一些特另外成果)。Map不是从Collection担任的,所以要单独看待。

boolean add(Object) *担保荟萃内包括了自变量。假如它没有添加自变量,就返回false(假)
boolean addAll(Collection) *添加自变量内的所有元素。假如没有添加元素,则返回true(真)
void clear() *删除荟萃内的所有元素
boolean contains(Object) 若荟萃包括自变量,就返回“真”
boolean containsAll(Collection) 若荟萃包括了自变量内的所有元素,就返回“真”
boolean isEmpty() 若荟萃内没有元素,就返回“真”
Iterator iterator() 返回一个重复器,以用它遍历荟萃的各元素
boolean remove(Object) *如自变量在荟萃里,就删除谁人元素的一个实例。假如已举办了删除,就返回“真”
boolean removeAll(Collection) *删除自变量里的所有元素。假如已举办了任何删除,就返回“真”
boolean retainAll(Collection) *只保存包括在一个自变量里的元素(一个理论的“交集”)。假如已举办了任何改变,就返回“真”
int size() 返回荟萃内的元素数量
Object[] toArray() 返回包括了荟萃内所有元素的一个数组

Boolean add(Object)
 

*Ensures that the Collection contains the argument. Returns false if it doesn’t add the argument.
 

Boolean addAll(Collection)
 

*Adds all the elements in the argument. Returns true if any elements were added.
 

void clear()
 

*Removes all the elements in the Collection.
 

Boolean contains(Object)
 

True if the Collection contains the argument.
 

Boolean containsAll(Collection)
 

True if the Collection contains all the elements in the argument.
 

Boolean isEmpty()
 

True if the Collection has no elements.
 

Iterator iterator()
 

Returns an Iterator that you can use to move through the elements in the Collection.
 

Boolean remove(Object)
 

*If the argument is in the Collection, one instance of that element is removed. Returns true if a removal occurred.
 

Boolean removeAll(Collection)
 

*Removes all the elements that are contained in the argument. Returns true if any removals occurred.
 

Boolean retainAll(Collection)
 

*Retains only elements that are contained in the argument (an “intersection” from set theory). Returns true if any changes occurred.
 

int size()
 

Returns the number of elements in the Collection.
 

Object[] toArray()
 

Returns an array containing all the elements in the Collection.
 

Object[] toArray(Object[] a)
 

#p#分页标题#e#

Returns an array containing all the elements in the Collection, whose type is that of the array a rather than plain Object (you must cast the array to the right type).
 

 

*This is an “optional” method, which means it might not be implemented by a particular Collection. If not, that method throws an UnsupportedOperationException. Exceptions will be covered in Chapter 9.
 

表一

*这是一个“可选的”要领,有的荟萃大概并未实现它。若确实如此,该要领就会碰着一个UnsupportedOperatiionException,即一个“操纵不支持”违例,详见第9章。

下面这个例子向各人演示了所有要领。同样地,它们只对从荟萃担任的对象有效,一个ArrayList作为一种“不常用的分母”利用:
 

//: Collection1.java
// Things you can do with all Collections
package c08.newcollections;
import java.util.*;

public class Collection1 {
  // Fill with 'size' elements, start
  // counting at 'start':
  public static Collection 
  fill(Collection c, int start, int size) {
    for(int i = start; i < start + size; i++)
      c.add(Integer.toString(i));
    return c;
  }
  // Default to a "start" of 0:
  public static Collection 
  fill(Collection c, int size) {
    return fill(c, 0, size);
  }
  // Default to 10 elements:
  public static Collection fill(Collection c) {
    return fill(c, 0, 10);
  }
  // Create & upcast to Collection:
  public static Collection newCollection() {
    return fill(new ArrayList());
    // ArrayList is used for simplicity, but it's
    // only seen as a generic Collection 
    // everywhere else in the program.
  }
  // Fill a Collection with a range of values:
  public static Collection 
  newCollection(int start, int size) {
    return fill(new ArrayList(), start, size);
  }
  // Moving through a List with an iterator:
  public static void print(Collection c) {
    for(Iterator x = c.iterator(); x.hasNext();)
      System.out.print(x.next() + " ");
    System.out.println();
  }    
  public static void main(String[] args) {
    Collection c = newCollection();
    c.add("ten");
    c.add("eleven");
    print(c);
    // Make an array from the List:
    Object[] array = c.toArray(); 
    // Make a String array from the List:
    String[] str = 
      (String[])c.toArray(new String[1]);
    // Find max and min elements; this means
    // different things depending on the way
    // the Comparable interface is implemented:
    System.out.println("Collections.max(c) = " +
      Collections.max(c));
    System.out.println("Collections.min(c) = " +
      Collections.min(c));
    // Add a Collection to another Collection
    c.addAll(newCollection());
    print(c);
    c.remove("3"); // Removes the first one
    print(c);
    c.remove("3"); // Removes the second one
    print(c);
    // Remove all components that are in the
    // argument collection:
    c.removeAll(newCollection());
    print(c);
    c.addAll(newCollection());
    print(c);
    // Is an element in this Collection
    System.out.println(
      "c.contains(\"4\") = " + c.contains("4"));
    // Is a Collection in this Collection
    System.out.println(
      "c.containsAll(newCollection()) = " + 
      c.containsAll(newCollection()));
    Collection c2 = newCollection(5, 3);
    // Keep all the elements that are in both
    // c and c2 (an intersection of sets):
    c.retainAll(c2);
    print(c);
    // Throw away all the elements in c that
    // also appear in c2:
    c.removeAll(c2);
    System.out.println("c.isEmpty() = " +
      c.isEmpty());
    c = newCollection();
    print(c);
    c.clear(); // Remove all elements
    System.out.println("after c.clear():");
    print(c);
  }
} ///:~

通过第一个要领,我们可用测试数据填充任何荟萃。在当前这种环境下,只是将int转换成String。第二个要领将在本章其余的部门常常回收。
newCollection()的两个版本都建设了ArrayList,用于包括差异的数据集,并将它们作为荟萃工具返回。所以很明明,除了Collection接口之外,不会再用到其他什么。
print()要领也会在本节常常用到。由于它用一个重复器(Iterator)在一个荟萃内遍历,而任何荟萃都可以发生这样的一个重复器,所以它合用于List和Set,也合用于由一个Map生成的Collection。
main()用简朴的手段显示出了荟萃内的所有要领。
在后续的小节里,我们将较量List,Set和Map的差异实现方案,同时指出在各类环境下哪一种方案应成为首选(带有星号的谁人)。各人会发明这里并未包罗一些传统的类,如Vector,Stack以及Hashtable等。因为不管在什么环境下,新荟萃内都有本身首选的类。

 

    关键字:

天才代写-代写联系方式