【集合《一》】Collection接口的共性方法

为了更深入的了解list集合中方法的一些用法,用下面这个例子记得会更深刻些,再加上下面的源码解读。

增加:

1:add() 将指定对象存储到容器中

add 方法的参数类型是Object 便于接收任意对象

2:addAll() 将指定集合中的元素添加到调用该方法和集合中

删除:

3:remove() 将指定的对象从集合中删除

4:removeAll() 将指定集合中的元素删除

修改:

5:clear() 清空集合中的所有元素

判断:

6:isEmpty() 判断集合是否为空

7:contains() 判断集合何中是否包含指定对象

8:containsAll() 判断集合中是否包含指定集合

9:使用equals()判断两个对象是否相等

获取:

10int size() 返回集合容器的大小

转成数组

11: toArray() 集合转换数组

package Work5;
import java.util.ArrayList;
import java.util.Collection;
public class CollT {
	public static void main(String[] args) {
		Collection<String> a = new ArrayList<String>();
		Collection<String> c = new ArrayList<String>();
		Collection<String> d = new ArrayList<String>();
		Collection<String> e = new ArrayList<String>();
		
		 ArrayList<Integer> h = new ArrayList<Integer>();
		 h.add(4);       
		 h.add(33);        
		 h.add(66);        
		 h.add(77);         
		 h.add(345);         
		 h.add(44);
		
		 a.add("白");         
		 a.add("日");         
		 a.add("依");         
		 a.add("山");         
		 a.add("尽");           
		 c.add("黄");         
		 c.add("河");          
		 d.add("白");        
		 d.add("日");         
		 d.add("依");        
		 d.add("山");         
		 d.add("尽");           
		 e.add("山");         
		 e.add("尽");     
		 System.out.println(a.isEmpty()); //false    
		 System.out.println(a.add("白"));  //true
		 System.out.println(a.addAll(c));  //addAll 把c中的元素都添加给a,破坏a的集合结构,不破坏c的    
		 System.out.println(a); //[白, 日, 依, 山, 尽, 白, 黃, 河]  list有序,可以重复,所以会显示两个“白”
		 System.out.println(c); //[黃, 河]
		 System.out.println(a.contains(null));
		 System.out.println(a.contains("地")); //false contains a集合中是否包含 “地”   
		 System.out.println(a.containsAll(e));//true  就是判断e中的所有元素都在a中吗。都在的话返回true,有一个不在就返回false。
		 System.out.println(e.containsAll(a));//false  
		 System.out.println(a.equals(c));  //false  
		 System.out.println(c);  
		 System.out.println(a.containsAll(d));//true
		 a.clear();//相当于实例化,重新new了一个list集合       
		 System.out.println(a);    
		 System.out.println(a.containsAll(d)); //false
	}
}

contains()方法,源码解读

    /**
     * Returns <tt>true</tt> if this list contains the specified element.
     * More formally, returns <tt>true</tt> if and only if this list contains
     * at least one element <tt>e</tt> such that
     * <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>.
     *
     * @param o element whose presence in this list is to be tested
     * @return <tt>true</tt> if this list contains the specified element
     */
    public boolean contains(Object o) {
        return indexOf(o) != -1;
    }

contains里面是indexof方法,该方法的用法:返回字符串中indexof(String)中字符串string在父串中首次出现的位置,从0开始。

没有就返回-1;方便判断和截取字符串。

contains方法:是判断字符串中是否有子字符串,如果有就返回true,没有就返回false。

containsAll()方法

   public boolean containsAll(Collection<?> c) {
     Iterator<?> e = c.iterator();
     while (e.hasNext())
         if (!contains(e.next()))
          return false;
     return true;
    }

a.containsAll(c)

containsAll就是判断c中的所有元素都在a中吗。都在的话返回true,有一个不在就返回false。

hasNext()是Scanner类的一个方法,判断是否有输入,有输入项,a .hasNext()为true,没有输入项,a .hasNext()为false。

这是java的迭代器的用法。

  1)使用方法 iterator()要求容器返回一个 Iterator。第一次调用Iterator 的next()方法时,它返回序列的第一个元素。

  2)使用next()获得序列中的下一个元素。

  3)使用hasNext()检查序列中是否还有元素。

  4)使用remove()将上一次返回的元素从迭代器中移除。

clear()方法

相当于实例化,重新new了一个list集合。把之前集合中的元素全部清空。

    /**
     * Removes all of the elements from this list.  The list will
     * be empty after this call returns.
     */
    public void clear() {
     modCount++;
     // Let gc do its work
     for (int i = 0; i < size; i++)
         elementData[i] = null;
     size = 0;
    }

参照学习理解此大神博客:

http://www.cnblogs.com/joyco773/p/6759981.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值