java基础之自定义队列实现
来源:互联网 发布:linux渗透有什么用 编辑:程序博客网 时间:2024/05/18 01:25
package shujujiegou;/** * Created by lcc on 2017/6/21. */public class DuiLie<T> { public static void main(String[] args) { DuiLie<String> lcc = new DuiLie<String>(); lcc.add("shuangqi"); lcc.add("keai"); lcc.add("love"); lcc.add("xuyingming"); lcc.add("haojiuhaojiu"); System.out.println(lcc.Print()); System.out.println("----------"); DuiLie<String> xuyingming = new DuiLie<String>(3); xuyingming.add("lcc"); xuyingming.add("lcc"); xuyingming.add("lcc"); int size = xuyingming.size(); xuyingming.remove(); int size1 = xuyingming.size(); xuyingming.clear(); int size2 = xuyingming.size(); System.out.println("shanchuqian " + size + " shanchuhou " + size1+ " clearhou " +size2); } private final int DEFAULT_SIZE = 10; private Object elementData[]; private int front = 0; private int rear = 0; private int capactiy; public DuiLie() { capactiy = DEFAULT_SIZE; elementData = new Object[capactiy]; } public DuiLie(int initsize) { this.capactiy = initsize; elementData = new Object[capactiy]; } public DuiLie(T element) { this(); // 调用空的构造方法,相当于capactiy = DEFAULT_SIZE; elementData = new Object[capactiy]; elementData[front] = element; front++; } public DuiLie(T element, int initsize) { this(initsize); elementData[front] = element; front++; } public int size() { return front - rear; } public boolean empty() { return front == rear; } public void add(T element) { if (rear > capactiy - 1) { throw new IndexOutOfBoundsException("the duilie is full!"); } elementData[rear++] = element; } public T remove() { if (empty()) { throw new IndexOutOfBoundsException("duilie is empty"); } T oldElement = (T) elementData[front]; elementData[front] = null; front++; return oldElement; } public T element() { if (empty()) { throw new IndexOutOfBoundsException("duilie is empty"); } return (T) elementData[front]; } private void fill(Object[] a, Object val) { for (int i = 0, len = a.length; i < len; i++) a[i] = val; } public void clear() { fill(elementData, null); front = 0; rear = 0; } public String Print() { if (empty()) return "[]"; StringBuffer sb = new StringBuffer("["); for (int i = front; i < rear; i++) { sb.append(elementData[i] + ","); } int len = sb.length(); return sb.replace(len - 2, len, "]").toString(); }}
阅读全文
0 0
- java基础之自定义队列实现
- Java小程序之自定义数组队列的实现(高级画板重绘基础)
- java基础之队列
- java 阻塞队列自定义实现
- Java自定义实现链队列
- java基础之 LinkedList类实现 栈和队列
- 队列之java实现
- 阻塞队列自定义实现 in Java
- 阻塞队列自定义实现 in Java
- java 之 阻塞队列实现
- java 实现数据结构之队列
- java 实现数据结构之队列
- 数据结构之-java实现-队列
- 数据结构之队列【java实现】
- 数据结构之java实现队列
- 不惑JAVA之JAVA基础 - 阻塞队列
- 队列(queue)之基础实现
- 数据结构之数组实现基础队列结构
- 触发器
- 【TensorFlow-windows】(二) 实现一个去噪自编码器
- 回声问题和回声消除技术及在可视监控对讲、楼宇对讲等领域的应用综述
- 域控制器的常规卸载,Active Directory系列之十三
- Android加载中动画AVLoadingIndicatorView的使用封装
- java基础之自定义队列实现
- HDU4027
- iOS runtime实用篇
- 如何将自己写的项目上传到github上?
- java自定义异常
- 路由生产算法
- java堆与栈的理解
- spring注入的processEngine突然就不好使了,项目启动不了
- qt对话框不在任务栏显示