java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5076| 回复: 0

java中Collection的基本操作

java中Collection的基本操作

boolean

add(E e) 向集合中添加元素e

boolean

addAll(Collection c) 把集合c中所有元素都添加到当前集合中

void

clear() 清空当前集合中所有的元素

boolean

contains(Object o) 在当前集合中判断是否包含元素o.

boolean

containsAll(Collection c) 判断当前集合是否包含集合c中的所有元素

boolean

equals(Object o).

int

hashCode()

boolean

isEmpty() 判断集合是否为空

Iterator

iterator() 返回当前集合的迭代器

boolean

remove(Object o) 从当前集合中删除第一个与o匹配的元素

boolean

removeAll(Collection c) 在当前集合中删除在c集合中出现的所有元素

int

size() 返回集合中元素的个数.

Object[]

toArray() 把集合转换为数组.

T[]

toArray(T[] a)

package com.wkcto.chapter05.collection;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 演示Collection集合的基本操作
 * @author 蛙课网
 *
 */
public class Test01 {

	public static void main(String[] args) {
		//1)创建Collection集合, Collection是一个接口,需要赋值实现类对象
		Collection	 collection = new ArrayList<>();
		
		//2) 向集合中添加元素, 默认添加Object类型数据
		collection.add("aa");
		collection.add("bb");
		collection.add( 123 ); 		//如果添加基本类型,系统会自动装箱, 把包装类对象添加到集合中
		collection.add( true );
		
		//3) 直接打印, collection引用 的是ArrayList对象, ArrayList的爷爷类AbstractCollection重写了toString()
		System.out.println( collection );  //[aa, bb, 123, true]
		
		//4)判断
		System.out.println( collection.isEmpty() );		//false
		System.out.println( collection.size());			//4
		System.out.println( collection.contains("bb"));	//true
		
		//5)删除
		collection.remove("bb");
		System.out.println( collection );
		
	}

}

package com.wkcto.chapter05.collection;

import java.util.ArrayList;
import java.util.Collection;
/**
 * 集合泛型与集合之间的相互操作
 * @author 蛙课网
 *
 */
public class Test02 {

	public static void main(String[] args) {
		//在实际应用中,一个集合中一般只存储同一类型的数据, 可以在定义集合时,通过泛型约束集合中元素的类型
		//Collection后面的尖括弧指定集合元素的类型, 这就是泛型, 泛型就是把数据类型当作参数
		Collection<String> collection = new ArrayList<>();
		
		//在添加元素时, collection集合就只能添加String类型的数据
		collection.add("gg");
		collection.add("jj");
		collection.add("dd");
		collection.add("mm");
		//如果添加的数据不是String类型,编译报错, 这就是泛型的好处,可以在编译时进行数据类型的检查
//		collection.add(123);  
		
		collection.add( "mm");
		collection.add( "jj");
		
		System.out.println( collection );  		//[gg, jj, dd, mm, mm, jj]

		//删除jj, remove()只删除第一个匹配的元素
		collection.remove("jj");
		System.out.println( collection );		//[gg, dd, mm, mm, jj]
		
		//创建第二个集合
		Collection<String> collection22 = new ArrayList<>();
		collection22.addAll(collection);  //把collection中 的所有元素添加到当前集合中
		System.out.println( collection22 );
		collection22.remove("mm");
		System.out.println( collection22 );   //[gg, dd, mm, jj]
		//判断collection集合中是否包含collection22集合中所有的元素
		System.out.println( collection.containsAll(collection22));  	//true
		//判断collection22集合中是否包含collection集合中所有的元素
		System.out.println( collection22.containsAll(collection));		//true
		//在colllection中删除在collection22集合中出现的元素
		collection.removeAll(collection22);
		System.out.println( collection );  		//[]
	}

}

package com.wkcto.chapter05.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/**
 * 集合的迭代器
 * @author 蛙课网
 *
 */
public class Test03 {

	public static void main(String[] args) {
		//1)创建一个存储String字符串的Collection集合
		Collection<String> collection = new ArrayList<>();
		
		//2) 添加元素
		collection.add("gg");
		collection.add("jj");
		collection.add("dd");
		collection.add("jj");
		collection.add("dd");
		collection.add("jj");
		//3)直接打印
		System.out.println( collection );   	//[gg, jj, dd, jj, dd, jj]
		
		//4) 遍历集合中的元素
		for (String str : collection) {
			//把collection集合中的每个 元素赋值给局部变量str
			System.out.println( str );
		}
		
		//5)把所有的dd删除
//		collection.remove("dd") ;  		//删除第一个匹配的元素
//		collection.removeAll(c); 		//删除出现在c集合中的所有元素, 依次判断当前集合中每个 元素是否在c集合中,如果存在就删除
		
		//foreach循环仅用于遍历
	/*	for (String string : collection) {
			if ("dd".equals(string)) {
				collection.remove("dd");
			}
		}*/
		
		//6) 迭代器遍历
		//6.1 获得迭代器对象
		Iterator<String> iterator = collection.iterator();
		/*
		 * iterator.hasNext()用于判断是否还有下个元素没访问
		 * iterator.next()返回下个元素, 游标下移
		 * 刚刚获得迭代器时, 迭代器的游标指向第一个元素的前面
		 */
		//6.2迭代遍历
		while( iterator.hasNext() ){
			String str = iterator.next();
			System.out.print( str + "	");
		}
		System.out.println();
		//循环完成后, iterator游标已经指向最后一个元素的后面, 如果还想要使用iterator迭代器,需要重写获得
		iterator = collection.iterator();   //重新获得迭代器后,游标指向 第一个元素的前面
		//6.3 迭代删除
		while (iterator.hasNext()) {
			String string = iterator.next();
			if ("dd".equals(string)) {
				iterator.remove();  	 	//迭代删除
			}
		}
		System.out.println( collection );
		
		//重新获得迭代器, 游标指向 第一个元素的前面
		iterator = collection.iterator();
		//获得了迭代器后, 如果再通过集合的add()/remove()/clear()等方法修改了集合的结构, 再迭代时,可能会产生异常
		//获得了迭代器后, 不能再通过集合的add()/remove()/clear()等方法修改集合的结构
		// 可以在通过集合的add()/remove()/clear()等方法修改集合的结构后, 重新获得迭代器对象
//		collection.add("dd");
		System.out.println( collection );
		//再迭代遍历
		while (iterator.hasNext()) {
			String string = (String) iterator.next();
//			System.out.print( string + "	");
			if( "jj".equals(string) ){
//				collection.remove("jj");
			}
		}
	}

}


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1169_1_1.html


java面试题交流群:327440556

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018