ArrayList、Vector、LinkedList、泛型(Generic)

本文深入探讨Java中的ArrayList、Vector和LinkedList的特点与应用,包括存储字符串、自定义对象的遍历方法,以及各集合特有的功能。同时,介绍了泛型的概念、优势和在类、方法、接口中的使用方式,为读者提供全面的Java集合框架理解。

1.ArrayList、Vector、LinkedList

ArrayList存储字符串并遍历

void forEach(Consumer<? super E> action) 执行特定动作的每一个元素的 Iterable直到所有元素都被处理或操作抛出异常

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        arrayList.add('a');
        arrayList.add('b');
        arrayList.add('c');
        //迭代器
        Iterator iterator = arrayList.iterator();
        while (iterator.hasNext()) {
            Object next = iterator.next();
            System.out.println(next);
        }
            //普通for
            Object[] array = arrayList.toArray();
            for (int i = 0; i < arrayList.size(); i++) {
                System.out.println(array[i]);
            }
    }
}

ArrayList存储自定义对象并遍历

    public static void main(String[] args) {
        Class class1 = new Class("通工");
        Class class2 = new Class("信工");
        Class class3 = new Class("电气");
        ArrayList list = new ArrayList();
        list.add(class1);
        list.add(class2);
        list.add(class3);
        Iterator iterator = list.iterator();
        while (iterator.hasNext()){
            Class c=(Class)iterator.next();
            System.out.println(c.getName());
        }
        Object[] array = list.toArray();
        for (int i = 0; i <array.length ; i++) {
            Class c=(Class)array[i];
            System.out.println(c.getName());

        }
    }
}

Vector的特有功能

Vector类概述: Vector 类可以实现可增长的对象数组 , Vector 是同步的。
Vector类特有功能
public void addElement(E obj)
public E elementAt(int index)
public Enumeration elements()

    public static void main(String[] args) {
        //Vector:底层数据结构是数组,增删慢,查询快,线程安全,效率低
        //void addElement (E obj)
        //添加指定的组件到这个向量的结束,增加其大小由一个。
        //E elementAt ( int index)
        //返回指定索引处的组件。
        //Enumeration<E> elements ()
        //返回此向量的组件的枚举。
        //boolean equals (Object o)
        //将指定的对象与此向量进行比较,以进行相等性。
        //E firstElement ()
        //返回第一个组件(在指数 0 项目)这个载体。
        //E lastElement ()
        //返回向量的最后一个组件。
        //void removeElementAt ( int index)
        //在指定的索引中删除组件
        Vector vector = new Vector();
        vector.addElement(100);
        vector.addElement(200);
        vector.addElement(300);
        Vector vector2 = new Vector();
        vector2.addElement(100);
        vector2.addElement(200);
        vector2.addElement(300);
        vector2.addElement(500);
        //返回一个迭代器
        Enumeration elements = vector.elements();
        while (elements.hasMoreElements()){
            Object o = elements.nextElement();
            System.out.println(o);

        }
        //对比两个集合当中元素是否一模一样
        boolean equals = vector.equals(vector2);
        System.out.println(equals);
        Object o = vector2.firstElement();
        System.out.println(o);
        vector2.removeElementAt(vector2.size()-1);
        System.out.println(vector2);


    }
}

LinkedList的特有功能

LinkedList类概述: List 接口的链接列表实现 , 此实现不是同步的
LinkedList类特有功能
public void addFirst(E e)及addLast(E e)
public E getFirst()及getLast()
public E removeFirst()及public E removeLast()

2.泛型

泛型是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。
参数化类型,把类型当作参数一样的传递。
泛型的格式 : <数据类型> 注意:这里的数据类型只能是引用数据类型!!!
泛型好处
(1): 把运行时期的问题提前到了编译期间
(2): 避免了强制类型转换
(3):优化了程序设计,解决了黄色警告线
注意:泛型只在编译期有效 但在运行期就擦除了

    public static void main(String[] args) {
//        自定义对象存储到ArrayList集合
//        使用迭代器遍历
        Student student = new Student("金克斯");
        Student student1 = new Student("布里茨");
        Student student2 = new Student("维克托");
        ArrayList<Student> list = new ArrayList<Student>();
        list.add(student);
        list.add(student1);
        list.add(student2);
        Iterator<Student> iterator = list.iterator();
        while (iterator.hasNext()){
            Student stu=iterator.next();
            System.out.println(stu.getName());
        }
	}

泛型的由来
泛型的由来:通过Object转型问题引入,早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。
泛型类概述: 把泛型定义在类上
定义格式: public class 类名<泛型类型1,…>

	
	private K k ;

	public K getK() {
		return k;
	}

	public void setK(K k) {
		this.k = k;
	}

}

泛型方法
泛型方法概述: 把泛型定义在方法上
定义格式: public <泛型类型> 返回类型 方法名(泛型类型 变量名)

	
	/**
	 * 泛型方法
	 */
	public <E> void show(E e){
		System.out.println(e);
	}
}

泛型接口概述: 把泛型定义在接口上
定义格式: public interface 接口名<泛型类型>

	
	public abstract void show(T t) ;

}

泛型高级之通配符

泛型通配符<?> 任意类型,如果没有明确,那么就是Object以及任意的Java类了

<? extends E>: 向下限定,E及其子类 <? super E> : 向上限定,E及其父类
多角色体系 支持管理员、商家、消费者三种角色,权限分级管控: 管理员:负责平台整体配置、用户审核、数据监控等全局操作。 商家:管理店铺信息、发布商品、处理订单、回复评价等。 消费者:浏览商品、加入购物车、下单支付、评价商品等。 实现用户注册(手机号 / 邮箱验证)、登录(支持密码 / 验证码 / 第三方登录)、个人信息管理(头像、收货地址、密码修改)。 权限精细化控制 商家仅能管理自家店铺及商品,消费者仅能查看和购买商品,管理员拥有全平台数据访问权限。 二、商品管理功能 商品信息维护 商家可发布商品:填写名称、分类(如服饰、电子产品)、子类别(如手机、笔记本)、规格(尺寸、颜色、号)、价格、库存、详情描述(图文)、物流信息(运费、发货地)等。 支持商品上下架、库存调整、信息编辑,系统自动记录商品状态变更日志。 商品分类与搜索 按多级分类展示商品(如 “数码产品→手机→智能手机”),支持自定义分类体系。 提供智能搜索功能:按关键词(名称、品牌)搜索,支持模糊匹配和搜索联想;结合用户浏览历史对搜索结果排序(优先展示高相关度商品)。 商品推荐 基于用户浏览、收藏、购买记录,推荐相似商品(如 “浏览过该商品的用户还买了…”)。 首页展示热门商品(销量 TOP10)、新品上架、限时折扣等推荐列表。 三、订单与交易管理 购物车与下单 消费者可将商品加入购物车,支持修改数量、选择规格、移除商品,系统自动计算总价(含运费、折扣)。 下单流程:确认收货地址→选择支付方式(在线支付、货到付款)→提交订单→系统生成唯一订单号。 订单处理流程 订单状态跟踪:待支付→已支付→商家发货→物流运输→消费者收货→订单完成,各状态变更实时通知用户。 商家端功能:查看新订单提醒、确认发货(填写物流单号)、处理退款申请(需审核理由)。 消费者端功能:查看订单详情、追踪物流、申请退款 / 退货、确认收货。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值