java之数据结构

数据结构

1.概念

数据结构分类:
线性数据结构:
数组,文件,线性表,栈......
非线性数据结构:
	散列表,树和图

2.java中数据结构的架构

Collection接口:
---List<E>
--------ArrayList
--------LinkedList
---Set<E>
---------HashSet
---------TreeSet
Map接口:
---HashMap
---TreeMap
---HashTable

3.java数据结构相关的类和接口

List 接口:
	实现类:ArrayList
	-------LinkedList
	-------vector
	对接口进行实例化:
	List list = new ArrayList();
	常用方法:
	void add (Object obj);往集合中添加数据
	Object get (int index);获取对象数据
	int size();获取集合长度.元素个数
	Object remove(int index);通过索引移除元素
	Object remove (Object obj);通过对象移除元素
	void clear();清除集合中的元素
	int indexOf(Object obj);获取元素的索引位置
	int lastIndexOf(Obj);获取指定元素最后一次出现的索引位置
	List subList (int form ,int toIndex);截取子集合

特点:
	1.有序集合
	2.元素可以重复的
Array数组工具类:
主要用于处理数据的工具类:
常用方法:
	List asList (int[] nums);
	作用:把数组转化成list集合
	sort(int[] nums)
	作用: 把数组进行排序
	String toString();
	作用:把数组转换成字符串
	int binarySearch(int[] nums,int i);
	作用:二分法查找指定的元素所在的索引位置
	注:要把数组先排序,在调用二分查找
	int[] copyofRange(int[] nums ,int from,int to);
	作用:复制指定长度的数组

ArrayList类:
	List接口的实现类:
	构造函数:
		ArrayList()无参构造函数
		ArrayList(Collection<E> c)带参的构造函数
	常用方法:
		1.add(Object O)添加元素
		2.add(int index, Object obj);把元素添加到指定的位置
		3.addAll(Collection c);把另外一个结合中的所有元素都添加到指定集合中
		4.remove(Object o);移除指定的对象
		5.remove(int inde);移除指定索引的元素
		6.removeAll(Collection c)移除指定的集合中的元素
		7.clear();清空集合中的元素
		8.retainAll(Collection c);保留指定的集合中的元素
		9.Object[] toArray();集合转换成数组
	LinkedList类:
		List接口的实现类;
		双向链表结构
		构造方法:
			LinkedList();创建一个空列表
			new LinkedList();
			LinkedList(Collection<? extends E >C);带参结构
		常用方法:
			add(E e)添加指定的元素到集合
			add(int idex ,E e);把元素添加到指定的位置
	List 接口;
	实现类:ArrayLsit
			LinkedList
		Vector
	面试题----->实现类的区别:
		ArrayList :非线性安全,增删处理速度快
		LinkedList:双向链表结构,非线程安全的,查询速度快
		Vector:线程安全的,处理速度慢

4.Set集合:

1.不能存放重复的元素
2.元素的存放是无序的
List接口和Set接口Map接口的区别(面试题)
实现类:

(面试题)Hashset 和TreeSet的区别:
HashSet:
1.非线程安全,处理速度飞非常快
2.通过equals方法和hashcode值判断对象是否重复,确保元素的唯一性

TreeSet:
	1.线程不安全,可以对Set集合中的元素进行排序
	2.通过conoareTo或者compare方法来保证元素饿唯一性
	3.元素是以二叉树的形式存放的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值