我的,你的,ta的Collection集合,Collection中提供的方法

Collection集合: – 具备数组的功能,可以存储一组数据, 但是不需要程序员维护集合的长度(集合会根据数据存储的个数自动扩容)

// 集合中存储的是对象的引用: 如果引用的对象的内容被修改了,那么集合中的内容也被修改了。
// 优点: 不用维护长度的变化
加粗样式
java.util.List - 接口, 是Collection的子接口, 具有Collection的所有方法, 还有自己独有的方法。

java.util.ArrayList – List接口的实现类。

// 子接口List 继承 父接口 Collection , List中有自己独有的方法。

T get(int index) ; – T代表的是创建对象的时候,设置的泛型。

// 根据索引位置,获取到该位置的数据值。

例子:

List<String> list = new ArrayList<String>();
list.add("ailice");
String  rose  = list.get(1);
System.out.println("rose:" + rose);
for(int i =0 ; i < list.size() ; i++) {  //for循环遍历
System.out.println(list.get(i));// 	list.remove(list.get(i));
// -- 造成list.size()在不断变化
//建议不要遍历的时候,删除集合的元素,会导致集合的结构变化。
}

新for循环
例子:

for(String s: list) {
	System.out.println(s);
}

迭代器遍历
例子:

Iterator<String> it = list.iterator();
		while(it.hasNext()) {
			System.out.println(it.next());
		}

T set(int index , T t) -–设置指定索引位置的数据,返回该位置原来的数据值。

//index的范围 [0, size()-1],不在这个范围内,抛出IndexOfBoundsException.

例子:

String oldStr = list.set(0, "贝多芬");
System.out.println(list); // [贝多芬, rose, zara, flower]

**

创建集合的实例

**

Collection – 是接口, 只能创建其实现类的对象。
List是Collection的子接口。
List – 是接口, ArrayList是List的实现类。

例子:

Collection c = new ArrayList();
// 创建两个Cell
Cell cell1 = new Cell(3,4);
Cell cell2 = new Cell(5,6);
//boolean add(Object o);
//给集合添加元素 , 集合中保存的是cell1,cell2的应用地址
c.add(cell1);
c.add(cell2);
System.out.println(c); //[(3,4), (5,6)] -- ArrayList和Cell都重写了toString方法。
// 修改cell1的数据值 set
cell1.setX(100);
cell1.setY(100);
//由于集合中存储的是引用地址, 所以cell1修改了对象的x,y之后, 集合中的对象的内容也被修改。
// 集合中允许出现重复的内容
Cell cell3 = cell1;
c.add(cell3);
System.out.println(c);

集合中是否包含某个元素: 以equals结果为准

//创建集合的实例
//Collection – 是接口, 只能创建其实现类的对象。
//List是Collection的子接口。
//List – 是接口, ArrayList是List的实现类。

例子:

Collection c = new ArrayList();
		
		// 创建两个Cell
		Cell cell1 = new Cell(3,4);
		Cell cell2 = new Cell(5,6);
		
		// 添加到集合中
		c.add(cell1);
		c.add(cell2);
		Cell cell3 = new Cell(5,6);
		Cell cell4 = cell1;
		// --集合中是否包含了cell3?
		/*
		 * boolean contains(Object obj)
		 */
		boolean  b = c.contains(cell3); // cell3.equals(cell2)-true.
		if(b) {
			System.out.println("包含");
		}else {
			System.out.println("不包含");
		}
		b = c.contains(cell4); // cell1.equals(cell4) -true
		if(b) {
			System.out.println("包含");
		}else {
			System.out.println("不包含");
		}

Collection中提供的方法:

//自动封箱int-Integer
//int size()
//size()指集合中元素的个数
//长度指集合中可以放多少个元素

例子:

int size = c.size();
System.out.println("集合中元素的个数:" + size);
//boolean isEmpty() , 集合中没有元素,返回true, 否则返回false.
System.out.println(c.isEmpty()); // false.
//void clear() -- 清空集合中的所有内容。
c.clear();//这里清空后面就没有内容了
System.out.println("c:" + c);

boolean remove(Object obj ) – 删除equals结果相等的元素, 如果有多个结果相等的,只删除第一个。

boolean addAll(Collection c ) – 将一个集合添加到一两个集合中。

booealn removeAll(Collection c) – 批量删除

集合中的元素的遍历:– 集合不能使用传统的for循环遍历。 – Collection中没有提供可以根据索引位置获取元素的方法。

Iterator iterator() — 获取迭代器: 迭代器用于所有的集合。
Iterator – 迭代器

//迭代器使用的过程中,不允许使用集合的方法对集合做修改(add,remove)
//迭代器使用过程中,不破坏集合原本的结构。
//一次hasNext的调用,对应一次next的调用。

boolean hasNext() – 问是否有
Object next() – 获取出来
void remove() – 删除当前遍历的元素
it.remove()-- 迭代器的删除

c.remove(“C”); – 导致遍历不成功,抛出异常

// 迭代器遍历结束了,不能使用next方法,否则抛出异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值