Collection
List和Set
add()
contains
size,clear,isEmpty
addAll與containsAll
-------------------------------淫蕩分割線---------------------------------
java提供了一種可以存數一組數據的數據結構,其提供了豐富的方法,在實際開發中往往比數組使用的廣泛。
這種數據結構成為集合:Collection。
Collection是一個接口,其定義了集合的相關功能方法。
1. List和Set
Collection派生出了兩個子接口,一個是List另一個則是Set。List:稱為可重復集,顧名思義,該集合中是允許存放重復元素的,那么何為重復元素?
重復元素指的并非是同一個元素,而是指equals方法比較為true的元素。Set:稱為不可重復集,所以,該集合中是不能將相同的元素存入集合兩次,同List,
這里相同指的也是兩個元素的equals比較結果為true。 不會出現true的情況
2. 集合持有對象的引用
集合當中 放的都是引用 是地址
集合中存儲的都是引用類型的元素,那么引用類型變量實際上存儲的是對象的“地址”,所以實際上集合只存儲了元素對象在堆中的地址。
而并不是將對象本身存入了集合中。
E 類型object
3.add()方法
Collection定義了一個add方法用于向集合中添加新元素。 該方法定義為:boolean add(E e)該方法會將給定的元素添加進集合,若添加成功則返回true,否則返回false(Set集合里面不能放重復元素)
public class TCollection { public static void main(String[] args) { /* * boolean add(E e) * 向集合中添加元素 添加成功返回true */ Collection collection =new ArrayList(); collection.add("a"); collection.add('b'); collection.add("c"); System.out.PRintln(collection); } }4. contains方法
boolean contains(Object o)該方法會用于判斷給定的元素是否被包含在集合中。若包含則返回true,否則返回false。這里需要注意的是,集合在判斷元素是否被包含在集合中是使用元素的equals的比較結果。(o==null ? e==null : o.equals(e)) 其中e是集合中的元素。
class TCollection2{ public static void main(String[] args) { /* * boolean contain() * 判斷集合中是否包含給定元素 包含則返回true * * 存入集合的元素 應妥善重寫equals方法 比如Cell里面要重寫equals * 應為集合中很多方法都參考equals的比較結果 */ Collection c1 =new ArrayList(); c1.add(new Cell(1,2)); c1.add(new Cell(1,3)); c1.add(new Cell(1,4)); c1.add(new Cell(1,5)); System.out.println(c1); Cell cell =new Cell(1,2); boolean contains =c1.contains(cell); System.out.println("是否包含cell:"+contains); }}5. size,clear,isEmpty方法
size方法用于獲取當前集合中的元素總數。該方法定義為:int size()clear方法用于清空集合。該方法定義為:void clear()isEmpty方法用于判斷當前集合中是否不 包含元素。該方法定義為:boolean isEmpty()例如:
/** * 測試集合的size 、clear、 isEmpty方法 * */class TCollection3{ /** * 測試集合的size 、clear、 isEmpty方法 * */ public static void main(String[] args) { Collection c2 = new ArrayList(); boolean isEmpty =c2.isEmpty(); System.out.println("是否是個空集合:"+isEmpty); System.out.println("size:"+c2.size()); c2.add("java"); c2.add("php"); c2.add("cpp"); System.out.println("size:"+c2.size()); }}6. addAll與containsAll方法
集合也提供了批處理操作:addAll方法用于將給定集合中的所有元素添加到當前集合中,其方法定義為:
/* * 將c2元素全部放入c3中 */ Collection c3 =new ArrayList(); c3.addAll(c2); System.out.println(c3); //查看集合c4中是否包含c2中的所有元素 Collection c4= new ArrayList(); c4.add("cpp"); c4.add("php"); c4.containsAll(c2); System.out.println(c4.containsAll(c2)); /* * boolean remove(Object o) * 刪除集合中第一個與給定的元素相同的元素 * 這里相同也是依靠元素的equals方法比較的 */ System.out.println(c2); c2.remove(c4); System.out.println(c2); }}新聞熱點
疑難解答