Java ArrayList和LinkedList的接口实现类

ArrayList

在这里插入图片描述

ArrayList类 是List接口的一个具体实现类
ArrayList 实现了长度可变的数组,在内存中分配连续的空间。便利元素和随机访问元素的效率比较高

ArrayList常用方法
在这里插入图片描述

LinkedList

LinkedList: 采用链表存储方式,插入,删除元素是效率比较高

public static void main(String[] args) {
        ///父类引用指向子类对象
        //List names=new LinkedList();
        LinkedList names=new LinkedList();
        //添加
        names.add("张珊");
        names.add("王五");
        //插入到数组下标为0的位置上  addFirst(参数)
        names.addFirst("郭静");
        //获取下标为0的数据get(index)
        System.out.println(names.get(0));//输出郭静
        System.out.println();
        System.out.println("*******增强for循环遍历");
        for (Object obj:names) {
            System.out.print(obj+"  ");
        }
        System.out.println("\n******迭代器遍历*********");
        Iterator iterator=names.iterator();
        while (iterator.hasNext()){
            String name= (String) iterator.next();
            System.out.print(name+"   ");
        }
    }

关于类型多属性的集合增删改操作

先定义属性类

public class PenguinProperty<E,T,C> {
    //企鹅的属性
    private E name;
    private T sex;
    private C age;
//省略构造方法和get and set
//<E,T,C>指不管什么类型都可以,不清楚输入是什么就可以用泛型
}

在定义接口

public interface   penjuininterface {
    //添加内容方法
    public void add(PenguinProperty penguinProperty)
    //查看
    public void size(PenguinProperty penguinProperty);
    //删除部分元素
    public boolean delete(String name);
}

PenguinProperty 类放三个属性

Penguin 是接口实现类

方法实现的功能

ArrayList集合添加内容add(Object o)
public class Penguin implements penjuininterface {
    List penguin =new ArrayList();
    //定义一个penguin 的集合
    @Override
    public void add(PenguinProperty penguinProperty) {
        penguin.add(penguinProperty);
        System.out.println("添加成功!");
    }
测试方法
 public static void main(String[] args) {
   PenguinProperty property=new PenguinProperty();
   //创建 PenguinProperty 对象
      Penguin pen=new Penguin();
 Scanner input=new Scanner(System.in);
 System.out.print("请输入企鹅的名字");
                    property.setName(input.next());
                    System.out.print("请输入企鹅性别:");
                    property.setSex(input.next());
                    System.out.print("请输入如企鹅年龄:");
                    property.setAge(input.nextInt());
                    //把对象赋给add方法
                    pen.add(property);
                    }		
ArrayList集合 for遍历和迭代器遍历

迭代器遍历

System.out.println("企鹅的名字是"+"\t\t"+"性别是:"+"\t\t"+"年龄是:");
  Iterator iter=penguin.iterator();
        while (iter.hasNext()){//判断是否存在可访问元素
        //因为存数据是penguinProperty类型的但是add添加变成 了objct类型
        用到需要强制转换成penguinProperty
            PenguinProperty name= (PenguinProperty) iter.next();
            System.out.println(name.getName()+"\t\t\t\t"
            +name.getSex()+"\t\t"+name.getAge());
        }

for遍历

System.out.println("企鹅的名字是"+"\t\t"+"性别是:"+"\t\t"+"年龄是:");
for (int i = 0; i <penguin.size() ; i++) {
            penguinProperty = (PenguinProperty) penguin.get(i);
            //因为存入的初始化数据是penguinProperty类型的但是add添加变成 了objct类型用到需要强制转换
            System.out.println(penguinProperty.getName()
            +"\t\t\t\t"+penguinProperty.getSex()+"\t\t"+penguinProperty.getAge());
        }

删除操作

@Override
    public boolean delete(String name) {
    //删除指定的是用户输入的所以需要给定一个参数
        boolean fala = false;
        for (int i = 0; i <penguin.size() ; i++) {
           //因为存入的初始化数据是penguinProperty类型的但是add添加变成 了objct类型用到需要强制转换
            PenguinProperty p= (PenguinProperty) penguin.get(i);
            if (name.equals(p.getName())){
                penguin.remove(p);
                fala=true;
                break;
            }
        }
        return fala;
    }
测试类
 public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        Penguin pen=new Penguin();
        PenguinProperty pro

    perty=new PenguinProperty();
            
                     System.out.println("请输入要删除的名字");
                        if ( pen.delete(input.next())){//利用返回值查看是否删除成功
                            System.out.println("删除成功");
                        }else {
                            System.out.println("没有这个人删除失败!");
      }              }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值