首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

集合框架

【Collection】

1、contains方法

boolean contains(Object o)

该方法会用于判断给定的元素是否被包含在集合中。若包含则返回true,否则返回false。

这里需要注意的是,集合在判断元素是否被包含在集合中是根据每个元素的equals()保证contains()方法的合理结果。

public void testContains(){

Collection cells=new ArrayList();

cells.add(new Cell(1,2));

cells.add(new Cell(1,3));

cells.add(new Cell(2,2));

cells.add(new Cell(2,3));

Cell cell=new Cell(1,3);

boolean flag=cells.contains(cell);//List集合contains方法和对象的equals方法相关

System.out.println(flag);//true,如果Cell不重写equals方法将为false

}

2、size、clear、isEmpty

int size()该方法用于返回当前集合中的元素总数。

void clear()该方法用于清空当前集合。

boolean isEmpty()该方法用于判断当前集合中是否不包含任何元素。

public void testSizeAndClearAndIsEmpty(){

Collection c=new HashSet();

System.out.println(c.isEmpty());//true

c.add("java");

c.add("cpp");

c.add("php");

c.add("c#");

c.add("objective-c");

System.out.println("isEmpty:"+c.isEmpty()+",size:"+c.size());//isEmpty:false,size:5

c.clear();

System.out.println("isEmpty:"+c.isEmpty()+",size:"+c.size());//isEmpty:true,size:0

}

2、addAll、containsAll

boolean addAll(Collection c)该方法需要我们传入一个集合,并将该集合中的所有元素添加到当前集合中。

如果此collection由于调用而发生更改,则返回true。

boolean containsAll(Collection c)该方法用于判断当前集合是否包含给定集合中的所有元素,若包含则返回true。

public void testAddAllAndContainsAll(){

Collection c1=new ArrayList();

c1.add("java");

c1.add("cpp");

c1.add("php");

c1.add("c#");

c1.add("objective-c");

System.out.println(c1);//[java,cpp,php,c#,objective-c]

Collection c2=new HashSet();

c2.addAll(c1);

System.out.println(c2);//[cpp,php,c#,java,objective-c]

Collection c3=new ArrayList();

c3.add("java");

c3.add("cpp");

System.out.println(c1.containsAll(c3));//true

}

【Iterator】

1、hasNest、next方法

迭代器用于遍历集合元素。获取迭代器可以使用Collection定义的方法:Iterator iterator()

迭代器Iterator是一个接口,集合在重写Collection的iterator()方法时利用内部类提供了迭代器的实现。

Iterator提供了统一的遍历集合元素的方式,其提供了用于遍历集合的两个方法:

1)boolean hasNext():判断集合是否还有元素可以遍历。

2)E next:返回迭代的下一个元素

public void testHasNextAndNext(){

Collection c=new HashSet();

c.add("java");

c.add("cpp");

c.add("php");

c.add("c#");

c.add("objective-c");

Iterator it=c.iterator();

while(it.hasNext()){

String str=it.next();

}

}

2、remove方法

在使用迭代器遍历集合时,不能通过集合的remove方法删除集合元素,否则会抛出并发更改异常。我们可以通过迭代器自身提供的remove()方法来删除通过next()迭代出的元素。

void remove()

迭代器的删除方法是在原集合中删除元素。

这里需要注意的是,在调用remove方法前必须通过迭代器的next()方法迭代过元素,那么删除的就是这个元素。并且不能再次调用remove方法,除非再次调用next()后方可再次调用。

public void testRemove(){

Collection c=new HashSet();

c.add("java");

c.add("cpp");

c.add("php");

c.add("c#");

c.add("objective-c");

System.out.println(c);//[cpp,php,c#,java,objective-c]

Iterator it=c.iterator();

while(it.hasNext()){

String str=it.next();

if(str.indexOf('c')!=-1){

it.remove();//删除包含字母c的元素

}

}

System.out.println(c);//[php,java]

}

3、增强型for循环

Java5.0之后推出了一个新的特性,增强for循环,也称为新循环。该循环不通过用于传统循环的工作,其只用于遍历集合或数组。

语法:

for(元素类型 e:集合或数组){

循环体

}

新循环并非新的语法,而是在编译过程中,编译器会将新循环转换为迭代器模式。所以新循环本质上是迭代器。

public void testForeach(){

Collection c=new HashSet();

c.add("java");

c.add("cpp");

c.add("php");

c.add("c#");

c.add("objective-c");

for(String str:c){

}

//CPP PHP C# JAVA OBJECTIVE-C

}

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308G0G68400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券