黑马程序员------毕老师视频笔记第13-17天------集合框架(Collection)

 ---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

集合:容器

为什么出现集合类?

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储。集合就是存储对象最常用的一种方式。

数组和集合类同是容器,有何不同?

数组虽然也可以存储对象,但长度是固定的,集合长度是可变的。数组可以存储基本数据类型,集合只能存储对象。

集合类的特点?

集合只用于存储对象,集合长度可变,集合可以存储不同类型的对象

 

数据在集合中怎样存储,叫集合的数据结构,不同的集合有不同的数据结构,有不同的特点,这是根据需求产生的。不同的的集合向上抽取,就形成了集合体系,即集合框架

Collection<E>接口,根接口,集合的共性的方法

常见功能:

1.添加

boolean add(E e)

boolean addAll(Collection<? Extends E>c)

 

2.删除

boolean remove(Object o)

boolean removeAll(Collection<?> c)

void clear();//清空集合,集合还在

 

3.判断

boolean contains(Object o)

boolean containsAll(Collection<?> c)

boolean isEmpty()

 

4.获取

int size();//获取长度

Iterator<E> iterator();//迭代器,取出集合中元素的方式,返回的是一个迭代器对象

 

5.其他

boolean retainAll(Collection<?> c);//取交集

Object[] toArray();//将集合转成数组

 

*集合直接被打印System.out.println(集合);会打印集合中的所有元素

[元素1,,元素2,元素3],这整体是一个字符串,这和获取集合元素不一样

 

Iterator,这是一个接口,它的实现是在某一种集合的内部的,以内部类的形式存在,因为每一种集合的数据结构不同,所以取出元素的方式也不同,每种集合都对应的实现了Iterator接口。我们没有必要知道内部是怎么实现取出元素的,使用集合对象的iterator()方法得到它的迭代器,就可以使用迭代器的next()方法和hasNext()方法得到集合中的元素。

迭代器对象必须依赖于具体的容器。

 

import java.util.*;
class CollectionDemo
{
	public static void main (String [] args)
	{
		//Collection是一个接口,要用它的实现类构造对象
		Collection coll = new ArrayList();
		Collection c1 = new ArrayList();
		Collection c2 = new ArrayList();

		show(coll);
		show(c1,c2);
	}
	//show的形参Collection在jdk1.5以后使用了泛型,这里只是演示,故不声明泛型
	public static void show(Collection coll)
	{
		coll.add("adsf");
		coll.add("ZX");
		coll.add("qew");
		coll.add("qewyrrj");
		System.out.println("直接打印集合coll:"+coll);
		coll.remove("ZX");
		System.out.println("删除ZX元素后的coll:"+coll);
		System.out.println("判断集合中是否含有元素qew:"+coll.contains("qew"));
		System.out.println("判断集合中是否为空:"+coll.isEmpty());
		System.out.println("获取集合的长度:"+coll.size());
		System.out.println("使用迭代器获取集合中的元素:");
		Iterator it = coll.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
		//一般开发中使用下面方法
		//for (Iterator it = coll.iterator(); it.hasNext(); )
		//{
		//	System.out.println(it.next());
		//}
	}
	public static void show(Collection c1,Collection c2)
	{
		c1.add("qwe");
		c1.add("as");
		c1.add("Z");
		c1.add("453");
		c2.add("xcvn");
		c2.add("453");
		System.out.println("直接打印集合c1:"+c1);
		System.out.println("直接打印集合c2:"+c2);
		c1.addAll(c2);
		System.out.println("c1.addAll(c2)之后,c1:"+c1);
		c1.removeAll(c2);
		System.out.println("c1.removeAll(c2)之后,c1:"+c1);
		System.out.println("c1.containsAll(c2):"+c1.containsAll(c2));
		c1.retainAll(c2);
		System.out.println("c1.retainAll(c2)取交集后c1:"+c1);
	}
}



编译出现了一个友情提示,原因是没有使用泛型,有安全隐患。

 

Collection有许多子接口,其中有两个我们常用到

List(列表),Set(集)

List:有序,不是指从小到大或者从大到小,是指怎么存进去的,取出就是什么顺序。而且元素都有索引(角标),允许有重复元素。

Set:没有重复元素,无序,存入和取出顺序不一定一样。

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

内容概要:本文深入探讨了软件项目配置管理在汽车开发领域的应用及其重要性,强调配置管理不仅是版本控制,更是涵盖标识、追溯、结构化等多方面的深度管控。文章通过对比机械产品和软件产品的标签管理,揭示了软件配置管理的独特挑战。配置管理构建了一个“网”状体系,确保软件产品在复杂多变的开发环境中保持稳定和有序。文中还讨论了配置管理在实际工作中的困境,如命名混乱、文档更新不及时、发布流程冗长等问题,并提出了通过结构可视化、信息同源化、痕迹自动化和基线灵活化等手段优化配置管理的具体方法。 适合人群:具备一定软件开发和项目管理经验的工程师及项目经理,尤其是从事汽车电子软件开发的相关人员。 使用场景及目标:①理解配置管理在汽车软件项目中的核心作用;②学习如何通过工具链(如Polarion、JIRA、飞书等)优化配置管理流程;③掌握结构可视化、信息同源化、痕迹自动化和基线灵活化等关键技术手段,提升项目管理水平。 其他说明:配置管理不仅是技术问题,更涉及到项目管理和团队协作。文中强调了工具链的应用和优化的重要性,但同时也指出,工具本身并不能解决所有问题,关键在于如何合理使用工具并不断优化管理流程。文章呼吁读者成为长期主义者,相信时间的力量,持续改进配置管理工作。
内容概要:本文详细介绍了针对含甲烷水合物沉积物(MHBS)的本构模型 Hydrate-CASM。该模型基于扩展的临界状态模型(CASM),引入了致密化机制,将水合物饱和度变化导致的孔隙体积减少等效为沉积物密度的增加。模型通过修改剪切模量、体积模量等参数来反映水合物饱和度对沉积物力学性质的影响。此外,还扩展实现了水合物相变(形成/分解)对力学性质的影响,并通过三轴试验数据验证了模型的有效性。文章进一步探讨了模型验证与传统模型的对比,展示了 Hydrate-CASM在保持简洁性的同时能够达到与传统胶结模型相当的预测精度。 适合人群:地质工程、土木工程及相关领域的研究人员和技术人员,特别是关注然气水合物储层稳定性和力学行为的学者。 使用场景及目标:①评估然气水合物储层资源潜力及其对压力-温度(P-T)条件变化的响应;②预测水合物分解可能引发的沉积物变形,为然气水合物开采过程中的储层稳定性评估提供依据;③分析海底环境变化导致的水合物分解风险。 其他说明:该模型不仅提供了理论框架,还通过详细的代码实现展示了模型的具体应用,便于读者理解和复现。模型的创新点在于引入了致密化机制而非传统的胶结作用来解释 MHBS的力学行为增强现象,并通过参数系统化和模块化设计确保了模型的数值稳定性和扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值