JAVA数据结构

java数据结构

在这里插入图片描述
Collection是java集合框架体系的总接口,其他集合框架都是实现Collection,封装了集合框架的公共操作
在这里插入图片描述Collection的工具类Collections,它封装了所有集合的关于算法操作的具体实现静态方法
在这里插入图片描述
集合框架Collection的三种主要实现如下:List(列表),Set,Queue

集合框架的另外一种数据类型的总接口是Map,基于Key-Value进行存储数据的,其中Key键值是不可重复的,主要是通过类的hashCode()和equal()进行保证的

List

如果能用数组的时候(元素类型固定,数组长度固定),请尽量使用数组来代替List;
如果没有频繁的删除插入操作,又不用考虑多线程问题,优先选择ArrayList;
如果在多线程条件下使用,可以考虑Vector;
如果需要频繁地删除插入,LinkedList就有了用武之地;
如果你什么都不知道,用ArrayList没错。

1.Vector类

用于事先不知道数组大小或数组大小可改变的情况

//创建向量v,初始大小为3,之后每次扩大两个步长
	Vector v = new Vector(3,2);
//添加到向量尾部
	v.addElement(new Integer(1));
	
//返回向量大小
	v.size();
//返回向量容量
	v.capacity();
//清空
	v.clear();
//判断是否为空
	v.isEmpty();
//移除
	v.remove();
2.ArrayList

ArrayList 类是一个可以动态修改的数组
在这里插入图片描述

//创建ArrayList
	ArrayList<String> sites = new  ArrayList<String>();
//添加元素
	sites.add("Google");
//访问元素
	sites.get(0);
//修改元素
	sites.set(0,"Runooob");
//删除元素
	sites.remove(0);
//求元素数量
	sites.size();
//遍历
	for(String i : sites){
		System.out.println(i);
	}		

Collections类中有排序方法

	import java.util.Collections;
	Collections.sort(sites);  // 字母排序
	
3.LinkedList

可作为队列使用
在这里插入图片描述

//在列表开头添加元素
	sites.addFirst("wiki");
//在列表结尾添加元素
	sites.addLast("TaoBao");
//在列表开头移除元素	
	sites.removefirst();
//移除尾部元素
	sites.removeLast();
//获取开头元素
	sites.getFirst();
//获取尾部元素
	sites.getLast();
	
4.Stack类

栈是Vector的一个子类

//创建一个栈
	Stack<Integer> st = new Stack<Integer>();
//测试是否为空
	st.empty();
//查看栈顶部对象,但不移除
	st.peek();
//移除栈顶部对象
	st.pop();
//压入堆栈顶部
	st.push();
//返回对象在栈中位置
	st.search();

Set

1.HashSet

不允许有重复元素的集合
允许有 null 值
是无序的,即不会记录插入的顺序
不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的
在这里插入图片描述

//判断元素是否存在于集合中
	sites.contains(“Taobao”)//删除集合中所有元素
	sites.clear();

2.SortedSet

Map

1.HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射
根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步
HashMap 是无序的
在这里插入图片描述

//创建一个HashMap对象
	HashMap<Integer, String> Sites = new HashMap<Integer, String>();
//添加元素
	Sites.put(1,"Google");
//访问元素
	使用get(key)来获取对应的value
	Sites.get(3);
//删除元素
	Sites.remove(3);
//清空
	Sites.clear();
//遍历
	for(Integer i:Sites.keySet()){	
		System.out.println("key:"+i+"value:"+Sites.get(i));
		}
		
	for(String value:Sites.values()){
		System.out.print(value + ", ");
		}

	
2.TreeMap

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值