1、数据结构
是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关
Java :
变量:只能存储一个
数组:存储一堆,数组一旦申明长度,能够存储数据的个数就固定了
数据结构:就是一种数据存储、排列的方式
对于存储的数据一般的维护工作:添加删除更新查找
目前世界上没有任何一种数据结构,添加删除更新查找都是非常高效
1.1、常见的数据结构的算法:
数组(Array):删除效率低
栈( Stack)
队列(Queue):
通常的讲,队列就是排队
特点FIFO:先进先出
链表( Linked List)
树(Tree)
图(Graph)
堆(Heap)
散列表(Hash)
2、列表的引入
前面学习的可以存储数据:
1.变量---只能存储一个指定类型数据
int a=10;
2.数组---能存储多个指定类型的数据
int[ ] arr=new int[10];
特点:能够存储指定个数以及类型的数据
有没有一种容器,能够存储任何类型,在=任意长度的数据?
有-----集合容器list,set,map
3、如何创建ArrayList对象。
javaAPI里面收缩list,java.awt是做图形界面的。
list:
public interface List<ESxtends collection
接口和抽象类new不了
list指的是有序的集合。
(提供了添加数据、移除数据,根据索引位置获取数据,获取存储个数的方法)
3.1、ArrayList::基于数组的集合实现类
这些方法只能用对象调用
booleanadd(E e)-将指定的元素添加到此列表的尾部。
object get(irindex)返回此列表中指定位置上的元素。
object remove(int index)移除此列表中指定位置上的元素。
int size()返回此列表中的元素数。
void clear(移除此列表中的所有元素。
3.2、LinkedList:基于链表的集合实现类
1、链表
boolean add(E e)将指定的元素添加到此列表的尾部。
object get(int index)返回此列表中指定位置上的元素。
object remove(int index)移除此列表中指定位置上的元素。
int size()返回此列表中的元素数。
void clear()移除此列表中的所有元素。
4、map存储的数据特点
map:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。(
map:用来存储类似于下面的这种数据(key,value)
key不可重复,具有唯一性,后面只能记录一个值
value就可以重复
map里面的常用方法:
void clear()从此映射中移除所有映射关系(可选操作)。
Object put(object key,object value)将指定的值与此映射中的指定键关联(可选操作)
int size()返回此映射中的键-值映射关系数。
0bject remove(Object k)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)
Object( get(object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null
HashMap()构造一个具有默认初始容量(16)和默认加载因子(0.75)的空HashMap。
添加数据是重复key时,会覆盖原有数据
5、map的遍历
Set set=map.keySet();
fore+alt+/:for (Object o : set) {}
解释:Object object(把每一个数据取出来,赋值给变量o) : set(数据源)
6、泛型
泛型:
K-v-T-E-c:都是泛型一种体现,在jdk1.5版本引入
在代码设计的时候,设计者不去确定具体的类型,由用户自己去定义数据类型
注意:1.如果泛型不指定的话,就是object类型
2.泛型不支持基本数据类型
使泛型来定义集合对象
List<E>此处的E就是要用户自己去约定当前的集合里面存储的内容
ex:以下的代码泛型规定了是string , list2里面只能放string类型的数据
List<String> list2=new ArrayList<String>();
List<String> list2=new ArrayList<>();//jdk1.7以后