java开始到熟悉100-102
本次内容:arraylist()
1、
package list; import java.util.ArrayList;
import java.util.Date;
import java.util.List; /**
* 测试list的基本方法
* @author acer
*
*/
public class arraylist {
public static void main(String[] args)
{
List list=new ArrayList();
//Arraylist():低层实现是数组,查找容易,插入删除复杂。线程不安全
//LinkedList():低层实现是链表,查找复杂,插入删除容易。线程不安全
//Vector():低层实现是数组,线程安全
list.add("aaa");
list.add(new Date());
list.add(1234);//包装类:自动装箱
System.out.println(list.size());
list.remove(0);
System.out.println(list.size());
list.get(0);
System.out.println(list.get(0));
list.set(0, "bbb");
System.out.println(list.get(0));
System.out.println(list.get(1));
}
}
运行结果:
3
2
Tue May 20 22:18:58 CST 2014
bbb
1234
2、自己定义arraylist()函数
package list; import java.util.Date; /**
* 自己定义arraylist,熟悉其低层实现
* @author acer
*
*/
public class myarraylist {
private Object[] elementData;
private int size;
public int size()//数组的大小
{
return size;
}
public myarraylist(int initalCapacity)//构造器
{
elementData=new Object[initalCapacity];
}
public Object get(int index)//取数组的值
{
rangeCheck(index);
return elementData[index];
}
public void add(Object object)//添加对象
{
ensureCapacity();
elementData[size++]=object;
}
public void add(int index,Object obj)//指定位置添加对象
{
rangeCheck(index);
ensureCapacity();
int numMoved=size-index;
System.arraycopy(elementData, index, elementData, index+1, numMoved);
elementData[index]=obj;
size++; }
private void ensureCapacity()//数组的扩容
{
if(size==elementData.length)
{
Object[] newarraylist=new Object[size*2+1];
System.arraycopy(elementData, 0,newarraylist,0,elementData.length);
elementData=newarraylist;
}
}
public void remove(int index)//移除对象
{
rangeCheck(index);
int numMoved=size-index-1;
if(numMoved>0)
{
System.arraycopy(elementData, index+1, elementData, index, numMoved);
}
elementData[--size]=null;
}
public void remove(Object obj)//移除对象
{
for(int i=0;i<size;i++)
{
if(get(i).equals(obj))
{
remove(i);
}
}
}
public boolean isEmpty()//判是否为空
{
return size==0;
}
private void rangeCheck(int index)//检测检索值是否越界
{
if(index<0||index>=size)
{
try {
throw new Exception();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
myarraylist list=new myarraylist(3);
list.add("aaa");
list.add("bbb");
list.add(new Date());
System.out.println(list.isEmpty());
System.out.println(list.size());
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
list.remove(0);
list.remove(new Date());
System.out.println(list.get(0));
list.add(1, "aaa");
System.out.println(list.get(1));
}
}
运行结果:
false
3
aaa
bbb
Tue May 20 23:41:15 CST 2014
bbb
aaa
java开始到熟悉100-102的更多相关文章
- 20165304实验一java开发环境熟悉
实验报告封面 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:李松杨 学号:20165304 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 15:25 实 ...
- 百度Java研发面经100题 总结
1. 单例模式常见的应用场景分析. 在23种设计模式中,单例模式排行老大.虽然理解简单,但是对于应用场景.你真正的熟悉么?使用单例,是由于没必要每个请求都新建一个对象,这样既浪费CPU又浪费内存:之所 ...
- java抓取快递100信息接口
package zeze; import java.io.IOException; import org.json.JSONArray; import org.json.JSONException; ...
- 用Java计算某个日期100天后的日期
用Java计算日期时间,首先考虑到时间类,Java中提供的和时间日期相关的类里,有一个Calendar类,可以获取某个时间日期. 计算某个日期100天后的日期,思路如下: 1.先设定时间,例如2017 ...
- Java最最常用的100个类排序(非官方)
下面这句话是引用"大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库, ...
- Java基础:一个100%会发生死锁的程序
多线程是Java工程师进阶所必须掌握的一项技能,也是面试中绕不过的一个环节,而死锁又是多线程同步失败的经典案例,对于复杂的系统,死锁是很难通过代码层面来做静态检测和排查的,所以有的面试官会从反 ...
- Java知多少(100)图像处理基础
图像是由一组像素构成,用二进制形式保存的图片.java语言支持GIF.JPEG和BMP这3种主要图像文件格式.java语言的图像处理功能被封装在Image类中. 图像载入和输出 在java程序中,图像 ...
- 20165320 实验一 java环境的熟悉
实验内容与步骤 一.java开发环境的熟悉 1.建立一个有关自己学号的目录 2.在当前文件下编译一个带包Hello.java文件 3.代码内容 package sq; import java.util ...
- Java迭代器问题 有100个人围成一个圈从1开始报数,报到14的这个人就要退出,然后其他人重新开始,从1报数,到14退出问:最后剩下的是100人中的第几个人 用listIterator迭代元素,并对集合进行删除操作
package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...
- java开始到熟悉105-107
1,HashMap基本用法 package list; import java.util.HashMap; import java.util.Map; /** * 测试map的基本用法 * @auth ...
随机推荐
- POJ-1061 青蛙的约会 (扩展欧几里得)
[题目描述] 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有 ...
- idea xml 一键生成 javabean
操作步骤 1.复制的xml文件到工程的一个文件下 2.选中文件tools -> XML ACTIONS -> Generate schema from instance Document ...
- Java web 服务启动时Xss溢出异常处理笔记
本文来自网易云社区 作者:王飞 错误日志 错误日志要仔细看,第一行不一定就是关键点,这个错误出现的时候,比较靠后,其中关键行就是下面这句. Caused by: java.lang.IllegalSt ...
- 原生js实现 table表格列宽拖拽
查看效果 <!DOCTYPE html> <html> <head> <meta charset="gbk"> <title& ...
- 请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保证A的元素个数小于等于20,且元素互异。各子集内部从大到小排序,子集之间字典逆序排序,见样例。
题解:观察测试样例,会发现每个子集的选择规律与二进制((2^n) - 1)到 1 的顺序生成的规律是一致的,样例中n=3,2^n-1=7,用二进制表示为111,其中每一位的1表示数组中的三个数都选择. ...
- 【软考2】Java语言的基本知识汇总
导读:现在对于java这一模块,还没有相应的项目经验,只是通过各种类型的资料,对java有一个面上的了解.现在,对此做一个罗列总结,在以后的学习过程中,逐步完善! 一.语言的发展 1.1,机器语言 在 ...
- HDU——1059Dividing(母函数或多重背包)
Dividing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- BZOJ 1027 [JSOI2007]合金 ——计算几何
我们可以把每一种金属拆成一个二维向量,显然第三维可以计算出来,是无关的. 我们只需要考虑前两维的情况,显然可以构成点集所形成的凸包内. 然后我们枚举两两的情况,然后可以发现如果所有的点都在一侧是可以选 ...
- [NOI2001] 食物链 (扩展域并查集)
题目描述 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B 吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的一种,但是我 ...
- 洛谷 [P4035] 球形空间生成器
高斯消元 注意浮点误差,判断一个浮点数是否为 0 的时候,看他的绝对值与 \(10^{-8}\)的关系 #include <iostream> #include <algorithm ...