赞
踩
集合只能存对象
java.util.Set接口及其子类,set提供的是一个无序的集合;
java.util.List接口及其子类,List提供的是一个有序的集合;
java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构;
ArrayList其实就是维护了一个数组,使用扩容机制使其长度可变,可以把它想象成是一个数组的工具类,能够快速的改变数组的元素和长度。
第一次创建集合并添加第一个元素的时候,在底层创建一个默认长度为10的数组。
- 增:add(int index, element)
- add(element) //在index后面增加
- 删:remove(int index)
- 查:get(int index)
- 改:set(int index,E element)
- 判断是否为空 :isempty()
(1)建一个List,在List 中增加三个工人,基本信息如下:
姓名 年龄 工资
zs 18 3000
ls 25 3500
ww 22 3200
(2) 在ls 之前插入一个工人,信息为:姓名:zl,年龄:24,工资3300
(3) 删除ww 的信息
(4) 利用for 循环遍历,打印List 中所有工人的信息
-
- List <Worker> list = new ArrayList();
- public void listInfo(){
- list.add(new Worker("zs",18,3000));
- list.add(new Worker("ls",25,3500));
- list.add(new Worker("ww",22,3200));
- public void insertList(){
- list.add(1,new Worker("zl",24,3300));
- }
- public void deleteList(){
- list.remove(3);
- }
- public void showList(){
- for (int i = 0; i < list.size(); i++) {
- System.out.println(list.get(i));
- }
- }
如果Worker类不重写toString方法
此查询就会输出地址,而不是元素值
- public void setList(){
- list.set(1,list.get(2));
- }
- public class Worker{
- private int age;
- private String name;
- private double salary;
-
- public Worker() {
-
- }
-
- public Worker(String name, int age, double salary){
- this.name = name;
- this.age = age;
- this.salary = salary;
- }
-
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public double getSalary() {
- return salary;
- }
-
- public void setSalary(double salary) {
- this.salary = salary;
- }
-
- public void work(){
- System.out.println(name + "work");
- }
-
- @Override
- public String toString() {
- return "Worker{" +
- "name=" + name +
- ", age='" + age + '\'' +
- ", salary=" + salary +
- '}';
- }
- }
-

- import java.util.ArrayList;
- import java.util.List;
-
- public class WorkerListTest {
- List <Worker> list = new ArrayList();
- public void listInfo(){
- list.add(new Worker("zs",18,3000));
- list.add(new Worker("ls",25,3500));
- list.add(new Worker("ww",22,3200));
- }
- public void insertList(){
- list.add(1,new Worker("zl",24,3300));
- }
- public void deleteList(){
- list.remove(3);
- }
- public void setList(){
- list.set(1,list.get(2));
- }
- public void showList(){
- for (int i = 0; i < list.size(); i++) {
- System.out.println(list.get(i));
- }
- }
- public void workList(){
- for (Worker woker: list
- ) {
- woker.work();
- }
- }
-
- public static void main(String[] args) {
- WorkerListTest wlt = new WorkerListTest();
- wlt.listInfo();
- wlt.insertList();
- wlt.deleteList();
- wlt.setList();
- wlt.showList();
- wlt.workList();
- }
- }

在用到ArryList时,最好和泛型一起使用,否则容易出现类型转化错误,对于初学者而言,数组下标越界的事情也常有发送,这需要使用者去仔细的理清楚逻辑关系
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。