集合简介

condition?a:b ---->其结果是一个值 可以使用一个变量进行接收
简写的if-else

	//代码
	int a=10;
	int b=20;

	int c=0;
	if(a>b){
		//省略代码
		c=a;

	}else{

		//省略代码
		c=b;
	}

	如果这一段代码可以拥有一个返回值的话,那么,就可以简写成为三元运算
	a>b?:  xxxx

	int c=a>b?a:b

为什么要有集合
c语言, 数组,类型单一,长度是固定的
集合:类型随意,长度不固定
容器类的任何操作:
CRUD
我们学习集合的一条简单的线路就是使用集合进行CRUD,看顶层,用底层
/******************************************************************
Collection中常用的方法:
collection中能不能添加null,会不会重复?
可以添加null,不会重复
collection中contains方法:
更确切地讲,当且仅当此 collection 至少包含一个满足 (onull ? enull : o.equals(e)) 的元素 e 时,返回 true。
移除元素的问题:
首先第一步还是检查集合中是否有此元素,有才能移除,没有就不能移除—>重写元素的hashcode和equals方法
/**********************************************************************
ArrayList 是一个可变数组的实现,可以包含null
在添加元素的时候复杂度是O(n),其他所有操作都以线性时间运行(O(1)):添加元素的时候比较低效的,但是在其他操作元素上还是比较高效的

特点:
	有序可重复
有序性:
	存入和取出的顺序是一致

作业:
	将list集合中的元素去重---->indexof   lastIndextOf       contains
最大容量是:
	MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

/************************************************************************
LinkedList:
栈:先进后出
队列:先进先出
/**********************************************************************
迭代器是java中出现的一个专门用来遍历集合的类,但是这个类不能new,只能有被迭代的集合进行实例化
细节:
1.未调用it.next()之前,直接调用it.remove()是不合法的
2.it.next()方法会将迭代器的指针往下移动一个
3.在集合迭代过程中,不允许对集合记性迭代器意外的操作,因为这样有可能引发并发修改的异常
/************************************************************************

set:
特点:无序的,不重复

/**********************************************************************
treeSet:
特点:无序的,不重复,排序(自然顺序)

使用treeSet存储元素,需要对元素进行排序,有两种方式:
	方式1:
	元素具备比较性
	元素实现Comparable接口,实现compareTo方法,只需要返回三个数学值就行,-1 ,0 ,1 

	a.compareTo(b)  ---->-1 a<b
	a.compareTo(b)  ---->0 a = b
	a.compareTo(b)  ---->1 a > b

	方式2:
	集合具备比较性,要求自己实现比较器接口,使用treeSet的时候,将比较作为构造参数传入即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值