自制数据结构(容器)-java开发用的最多的ArrayList和HashMap

- public class MyArrayList<E> {
- private int capacity = 10;
- private int size = 0;
- private E[] values = null;
- @SuppressWarnings("unchecked")
- public MyArrayList() {
- values = (E[]) new Object[capacity];
- }
- @SuppressWarnings("unchecked")
- public MyArrayList(int capacity) {
- this.capacity = capacity;
- values = (E[]) new Object[this.capacity];
- }
- public void put(E e) {
- if (e == null) {
- throw new RuntimeException("The value should not be null.");
- }
- if (size >= capacity) {
- enlargeCapacity();
- }
- values[size] = e;
- size++;
- }
- public E get(int index) {
- if (index >= size) {
- throw new RuntimeException("The index:" + index + " is out of band.");
- }
- return values[index];
- }
- public void remove(int index) {
- if (index >= size) {
- throw new RuntimeException("The index:" + index + " is out of band.");
- }
- for (int i = index; i < size - 1; i++) {
- values[i] = values[i + 1];
- }
- values[size - 1] = null;
- size--;
- }
- @SuppressWarnings("unchecked")
- private void enlargeCapacity() {
- capacity = capacity * 2;
- E[] tmpValues = (E[]) new Object[capacity];
- System.arraycopy(values, 0, tmpValues, 0, size);
- values = tmpValues;
- }
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append("[");
- for (int i = 0; i < size; i++) {
- sb.append(values[i]).append(",");
- }
- if (size > 0) {
- sb.deleteCharAt(sb.length() - 1);
- }
- sb.append("]");
- return sb.toString();
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- MyArrayList<Integer> myList = new MyArrayList<Integer>();
- for(int i=0;i<1000;i++){
- myList.put(i);
- }
- System.out.println(myList.toString());
- }
- }
自制数据结构(容器)-java开发用的最多的ArrayList和HashMap的更多相关文章
- java常用集合类:Deque,ArrayList,HashMap,HashSet
图一:java collection 类图 Queue家族 无论是queue还是stack,现在常用的是Deque的实现类:如单线程的ArrayQueue,多线程的ArrayBlockingQueue ...
- java开发工具比较(16个工具修订版)
1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利 ...
- Java开发笔记(序)章节目录
现将本博客的Java学习文章整理成以下笔记目录,方便查阅. 第一章 初识JavaJava开发笔记(一)第一个Java程序Java开发笔记(二)Java工程的帝国区划Java开发笔记(三)Java帝国的 ...
- Java开发工具全面比较
1.JDK (Java Development Kit)Java开发工具集 从初学者角度来看Java开发工具,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对 ...
- Java开发笔记(七十一)容器工具Collections
清单作为一组数据的有序队列,它在组织形式上与数组有着某些异曲同工之处,数组有专门的数组工具Arrays来进行加工操作,照理清单也应该配备对应的清单工具.当然容器这个大家族确实拥有自己的容器工具Coll ...
- 20172301 2017-2018-2 《程序设计与数据结构》实验一《Java开发环境的熟悉》实验报告
20172301 2017-2018-2 <程序设计与数据结构>实验一<Java开发环境的熟悉>实验报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 郭 ...
- Java开发中用的比较多的数据结构
java 中几种常用数据结构 2016年07月11日 09:11:27 阅读数:83211 标签: 数据结构java 更多 个人分类: 自行学习 JAVA中常用的数据结构(java.util. 中 ...
- 阿里JAVA开发手册零度的思考理解(二)
转载请注明原创出处,谢谢! 说在前面 人生的大道上默默地走,就必须要有一盏灯亮着为你引导方向!而这盏灯抑或只是一句话,一句鼓励,一个赞美,一次承认,一次认可,一次相识一次交流-- 上篇文章:阿里JAV ...
- 知名互联网公司校招 Java 开发岗面试知识点解析
天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...
随机推荐
- 基因家族收缩和扩张分析 & Selective loss pathway & 泛基因组
套路 这通常就是基因组组装后的必做分析,通过比较基因组学的手段进行分析,可以知道所研究物种在进化过程中哪些核心基因家族发生了变化,从而导致了其特殊的适应性机制的形成. 参考: Extremotoler ...
- 【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(五)
2.Find示例代码 (1)xaml文件: //添加Symbol命名空间 xmlns:esriSymbols="clr-namespace:ESRI.ArcGIS.Client.Symbol ...
- 1月5日 对象Object, 含过去看的英文档的总结链接
Object 也是一种数据类型,可以有属性,有method. 反之,在Ruby中,每一种数据类型都是Object.如String,Integer,Float,Array,Hash. IN Ruby e ...
- 3 python 基本数据类型
1.python的基本数据类型 1.字符串 不可变数据类型 2.int //整除 %取余 bit_length() print(a.bit_length()) #打印某个数字类型的二进制长度 3.bo ...
- km板子(二分图最大权匹配)
//#pragma comment(linker, "/stack:200000000") //#pragma GCC optimize("Ofast,no-stack- ...
- GDI+ DrawString字间距问题
/// <summary> /// 绘制任意间距文字 /// </summary> /// <param name= "text "& ...
- OAF多语言的实现
在之前的文章中转载了一篇关于多语言实现的文章. OAF中多语言的实现(转) 现在我来讲讲另外一种情况. 在建立工程项目没有特别选择语言,所以所有的PG或RN页面都是英文的,在页面原文件中可看到如下内容 ...
- java连接MySql数据库 zeroDateTimeBehavior
JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常, 就是所见的:java.sql.SQLException: Cannot convert va ...
- 78. Subsets 90. Subsets II
1. Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset m ...
- Sublime text3配置xdebug调试记录
第一次配置遇到的问题记录: 问题:配置php.ini的时候xdebug.remote_port = 9001刚开始我一直配置9000端口冲突,然后一切弄好了访问浏览器就一直在转圈无法访问: 现在开始配 ...