万法归宗,所有集合类的基础模板

一、 实践了泛型编程

二、利用了java提供的迭代器

三、内部类

四、数据抽象

五、可变数组的实现技巧(1/2和1/4)

六、在main中放入API最小测试实例

import java.lang.Iterable;
import java.util.Iterator;
public class Stack<Item> implements Iterable<Item> {
	private Item[] a;
	private int top;
	public Stack(){

	}

	public boolean isEmpty(){
		return top < 0;
	}

	public int size(){
		return a.length;
	}
	public Stack(int size){
		a = (Item[]) new Object[size];
		top = -1;
	}

	public void push(Item ele){
		resize();
		a[++top]= ele;
	}

	public Item pop(){
		resize();
		return a[top--];
	}

	private void resize(){
		if(a.length==0) a = (Item[]) new Object[1];
		else if ((top+1) >= a.length/2){
			Item[] temp = (Item[]) new Object[a.length*2];
			for(int i =0; i< top+1; i++) temp[i]= a[i];
			a = temp;
		}else if((top+1) <= a.length/4){
			Item[] temp = (Item[]) new Object[a.length/2];
			for(int i =0; i< top+1; i++) temp[i]= a[i];
			a = temp;	

		}

	}

	public Iterator<Item> iterator(){

		class dataarray implements Iterator<Item> {
			private int t =top;
			public boolean hasNext(){
				return t>=0;
			}
			public Item next(){
				return a[t--];
			}
			public void remove(){

			}

		}
		return new dataarray();

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

//String
 Stack<String> stk = new Stack<String>(2);
 stk.push("first");
 stk.push("second");
 stk.pop();
 stk.push("third");
 stk.push("fourth");
 stk.push("fifth");
 for(String str:stk){
	 System.out.println(str);
 }

 //Double
 Stack<Double> stk_val = new Stack<Double>(0);
 stk_val.push(1.0);
 stk_val.push(2.0);
 stk_val.pop();
 stk_val.push(3.0);
 stk_val.push(4.0);
 stk_val.push(5.0);
 for(double val:stk_val){
	 System.out.println(val);
 }

	}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 18:09:01

万法归宗,所有集合类的基础模板的相关文章

【转】手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)

前言 做这个 vueAdmin-template 的主要原因是: vue-element-admin 这个项目的初衷是一个vue的管理后台集成方案,把平时用到的一些组件或者经验分享给大家,同时它也在不断的维护和拓展中,比如最近重构了dashboard,加入了全屏功能,新增了tabs-view等等.所以项目会越来越复杂,不太适合很多初用vue的同学来构建后台.所以就写了这个基础模板,它没有复杂的功能,只包含了一个后台需要最基础的东西.vueAdmin-template 主要是基于vue-cli w

UVA11178 Morley&#39;s Theorem(基础模板)

题目链接 题意:给出A,B, C点坐标求D,E,F坐标,其中每个角都被均等分成三份   求出 ABC的角a, 由 BC 逆时针旋转 a/3 得到BD,然后 求出 ACB 的角a2, 然后 由 BC顺时针 旋转 a2 / 3得到 DC,然后就交点 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #include <cmath&g

树状数组(二叉索引树 BIT Fenwick树) *【一维基础模板】(查询区间和+修改更新)

刘汝佳:<训练指南>Page(194) #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; //一维树状数组基础模板 int lowbit(int x) { return x&(-x); } int c[1001]; int sum(int x) //计算从1到x的数组元素的和 { int

Bootstrap 4/3 页面基础模板 与 兼容旧版本浏览器

Bootstrap 3 与 4 差别很大,目录文件结构.所引入的内容也不同,这里说说一下 Bootstrap 引入的文件.网页模板和兼容性问题.本网站刚刚搭建好,正好发一下文章原来测试网站. Bootstrap 4 目录结构如下 bootstrap/ ├── css/ │ ├── bootstrap.css │ ├── bootstrap.css.map │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── bootstrap-gri

vue-cli3 搭建的前端项目基础模板

基于 vue-cli3 搭建的前端模板,fork 或 clone 本仓库,即可搭建完成一个新项目的基础模板,源码地址,欢迎 star 或 fork 特性 CSS 预编译语言:less Ajax: axios,做了一定的封装,详见 src/services/request.js SVG 雪碧图:采用 webpack 插件 svg-sprite-loader,及 svg 精简压缩工具 svgo 移动 web 的适配方案:引入了 postcss-pxtorem 及 lib-flexible,可以自由地

jsp基础模板

jsp页面基础模板 base.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set var="ctx

Vue基础模板语法的认识

模板语法 mustache 语法中是支持写js的 用法: 内容: 必须加 {{ js语法 }} 属性: 属性中属性值可以直接写js语法,并且属性值中的数据相当于全局变量 给一个标签加一个自定义属性/已有属性 img中的src就是已有属性<img src = "" /> ?//data-index就是自定义属性 , web网页中建议我们使用data-形式来定义自定义属性<img data-index = "0" />? 思考: Vue现在想要在

ac自动机基础模板(hdu2222)

In the modern time, Search engine came into the life of everybody like Google, Baidu, etc. Wiskey also wants to bring this feature to his image retrieval system. Every image have a long description, when users type some keywords to find the image, th

并查集基础 模板题 hdu1232 畅通工程

模板题 引入并查集——一则有趣的故事 为了解释并查集的原理,我将举一个更有趣的例子.话说江湖上散落着各式各样的大侠,有上千个之多.他们没有什么正当职业,整天背着剑在外面走来走去,碰到和自己不是一路人的,就免不了要打一架.但大侠们有一个优点就是讲义气,绝对不打自己的朋友.而且他们信奉“朋友的朋友就是我的朋友”,只要是能通过朋友关系串联起来的,不管拐了多少个弯,都认为是自己人.这样一来,江湖上就形成了一个一个的群落,通过两两之间的朋友关系串联起来.而不在同一个群落的人,无论如何都无法通过朋友关系连起