Core Java的那点事儿之ArrayList
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/
<。)#)))≦
Core Java的那点事儿之ArrayList的更多相关文章
- Difference Between Arraylist And Vector : Core Java Interview Collection Question
Difference between Vector and Arraylist is the most common Core Java Interview question you will co ...
- Core Java Volume I — 4.7. Packages
4.7. PackagesJava allows you to group classes in a collection called a package. Packages are conveni ...
- Java日志框架那些事儿
文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...
- Java 集合框架(二)—— ArrayList
二.数组列表 —— ArrayList 1.构造方法 ArrayList 是 Java 中的动态数组,底层实现就是对象数组,只不过数组的容量会根据情况来改变. 它有个带 int 类型参数的构造方法,根 ...
- Top 25 Most Frequently Asked Interview Core Java Interview Questions And Answers
We are sharing 25 java interview questions , these questions are frequently asked by the recruiters. ...
- 转:java怎么用一行代码初始化ArrayList
java怎么用一行代码初始化ArrayList 您可以创建一个工厂方法: public static ArrayList<String> createArrayList(String .. ...
- applet示例 WelcomeApplet.java <Core Java>
import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.Grap ...
- Core Java Volume I — 1.2. The Java "White Paper" Buzzwords
1.2. The Java "White Paper" BuzzwordsThe authors of Java have written an influential White ...
- 在Java中怎样把数组转换为ArrayList?
翻译自:How to Convert Array to ArrayList in Java? 本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在S ...
随机推荐
- SVN Working copy '***' locked
问题描述: 用svn在项目文件夹下commit或者update时会出现错误提示“working copy locked” 解决方法: 1.在项目文件夹下,单击鼠标右键,选择tortoisesvn-&g ...
- ubuntu 16.04安装nVidia显卡驱动和cuda/cudnn踩坑过程
安装深度学习框架需要使用cuda/cudnn(GPU)来加速计算,而安装cuda/cudnn,首先需要安装nvidia的显卡驱动. 我在安装的整个过程中碰到了驱动冲突,循环登录两个问题,以至于最后不得 ...
- 飞塔Web应用防火墙-FortiWeb
飞塔Web应用防火墙-FortiWeb 平台: fortiweb 类型: 虚拟机镜像 软件包: linux basic software Fortinet security SSL offloadin ...
- SQL Server索引总结二
从CREATE开始 通过显式的CREATE INDEX命令 在创建约束时作为隐含的对象 随约束创建的隐含索引 当向表中添加如下两种约束之一时,就会创建隐含索引. 主键约束(聚集索引) 唯一约束(唯一索 ...
- SqlServer Alwayson 搭建排错记录(一)
这几天搭建alwayson,碰到一堆问题,解决起来花了不少时间,特此记下几个有代表性的,以免以后再碰到做重复功. 一.创建可用性组 使用SSMS的创建可用性组向导,添加了一个主副本node1,一个辅助 ...
- LeetCode Add Digits (规律题)
题意: 将一个整数num变成它的所有十进制位的和,重复操作,直到num的位数为1,返回num. 思路: 注意到答案的范围是在区间[0,9]的自然数,而仅当num=0才可能答案为0. 规律在于随着所给自 ...
- Coursera 算法二 week 3 Baseball Elimination
这周的作业不需要自己写算法,只需要调用库函数就行,但是有些难以理解,因此用了不少时间. import edu.princeton.cs.algs4.FlowEdge; import edu.princ ...
- 日常-acm-排列
用1-9组成三个数abc,def,ghi,每个数字恰好出现一次,要求abc:def:ghi=1:2:3.按照“abc def ghi”输出所有解,每行一个解. #include <iostrea ...
- 2018.6.10 Oracle数据库常见的错误汇总
1.ClassNoFoundException 找不到注册驱动 可能原因:1>驱动名称不对 2>没有导入数据库驱动包 2.SQl 语句中可以使用任何有效的函数,函数操作的列,必须指定别名, ...
- javaweb基础(30)_EL函数库
一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页 ...