Core Java的那点事儿之ArrayList

  万丈高楼平地起,Java基础要拿起。今天就从我看的Core Java里找了些小基础点来分享一下。

  首先隆重介绍一下专业级龙套演员---Employee类(PS:我可是专注龙套30年),下面会有多次出场,因此先在此介绍一下:

 class Employee{
private String name;
private double salary;
private int id; //下面是set、get方法
}

ArrayList

  首先有请ArrayList登场并进行自我介绍:我是一个采用类型参数(Type parameter)的泛型类(generic class)。为了指定数组列表保存的元素对象类型,我使用一对尖括号将类名括起来加在后面,例如,ArrayList<Employee>(Employee:终于轮到我龙套出场了)...balabala(此处省略10086字)。好了,下面来介绍下怎么来使用他。

  1.声明:

 ArrayList<Employee> staff = new ArrayList<Employee>();

  天哪,两边都有Employee,这也太麻烦了吧。如果嫌麻烦的话,请使用Java7,在Java7中,可以省去右边的类型参数就像下面这样子:

 ArrayList<Employee> staff = new ArrayList<>();

  这又被称为“菱形”语法,因为空的尖括号就像是一个菱形。可以结合new操作符使用菱形语法。编译器会检查新值是什么,如果赋值给一个变量,或传递到某个方法,或者从某个方法返回,编译器会检查这个变量、参数或方法的泛型类型,然后将这个类型放在<>中,在本例中,龙套演员是Employee,因此泛型类型就是Employee。

  2.添加

 staff.add(new Employee("Harry Hacker"....));
staff.add(new Employee("Tony Michel"...));

  3.获取数组实际大小

 staff.size();

  4.访问数组列表元素

  4.1.替换:

 staff.set(i,harry);

  注意:此方法在一定程度上等同于a[i]=harry。但是此方法只能替换数组中已经存在的元素内容。

  4.2.获取

 Employee e = staff.get(i);

  等价于:Employee e = a[i];

  5.插入新元素:

 ArrayList<X> list = new ArrayList<>();
while(...)
{
x=...;
list.add(x);
}

  然后可以使用toArray方法将数组拷贝到一个数组中。

 X[] a = new X[list.size()];
list.toArray(a);

  除此之外,还可以在数组列表中间加入元素:

 int n = staff.size()/2;
staff.add(n, e);

  6.删除元素

 Employee e = staff.remove(n);

  7.遍历数组

  常规方法

 for(int i = 0; i<staff.size(); i++)
{
Employee e = staff.get(i);
//do somne thing with e
}

  逼格稍高点的方法(for each循环):  

 for(Empolyee e : staff)
{
// do something withe e
}

  

  PS:本博客欢迎转发,但请注明博客地址及作者~

   博客地址:http://www.cnblogs.com/voidy/

   <。)#)))≦

最新文章

  1. Unity3D 开发之shader教程(浅谈光照之漫反射diffuse)
  2. android Gui系统之SurfaceFlinger(5)---Vsync(2)
  3. POJ2528Mayor&#39;s posters(离散化 + 线段树)
  4. javascript高级程序设计---Element对象
  5. js 如何在浏览器中获取当前位置的经纬度
  6. 数据库系统概论(第5版) P262 例8.12
  7. Resume Hook SSDT
  8. 二维树状数组——SuperBrother打鼹鼠(Vijos1512)
  9. Centos安装编译环境
  10. 【模拟】XMU 1054 Hacker
  11. 【POJ3299】Humidex(简单的数学推导)
  12. Redmine开启服务
  13. PyQt中弹出对话框操作
  14. Head First 设计模式 第1章 策略模式
  15. Prism for WPF再探(基于Prism事件的模块间通信)
  16. redis 开启远程访问权限
  17. jquery 点击显示更多
  18. Turtle库的建立——汉诺塔
  19. Codeforces 346D Robot Control(01BFS)
  20. Struts2的动态Action和全局跳转视图以及配置各项默认值

热门文章

  1. uLua学习之创建游戏对象(二)
  2. MySQL-数据类型及选择
  3. shell中的数值计算1/3=0.33
  4. 约瑟夫环问题及PHP代码实现
  5. MVC下c#对接微信公众平台开发者模式
  6. java核心技术 要点笔记2
  7. mac上Apache修改目录浏览权限
  8. 理顺react,flux,redux这些概念的关系
  9. GCH文件
  10. jQuery Pagination分页插件--刷新