J2EE&集合框架&List

这篇具有很好参考价值的文章主要介绍了J2EE&集合框架&List。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.UML

①集合类图

②线下教育平台用例图

 二.List集合特点

①学集合框架就是了解容器的数据结构(增删改查)

②有序的 可重复的

三.遍历方式

① foreach

② iterator 迭代器

③ for

四.LinkedList

①对比ArrayList是数据结构

Linkedlist: 链表 特点:查询修改慢,增加删除快

Arraylist: 数组  特点:查询修改快,增加删除慢

②堆栈 队列

五.增长因子论证

六.集合框架ArrayList中的重复元素去重及其底层原理


一.UML

①集合类图

J2EE&集合框架&List,java-ee,list,java,eclipse

②线下教育平台用例图

J2EE&集合框架&List,java-ee,list,java,eclipse

 二.List集合特点

①学集合框架就是了解容器的数据结构(增删改查)

②有序的 可重复的

public class Demo1 {
    public static void main(String[] args) {
        //集合本身就是一个容器,容器的特点,就是对存储的元素进行增删改查
        List list = new ArrayList<>();
        //增加
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println("目前集合容器中的元素:"+list);
        //修改
        list.set(1, "y");
        System.out.println("容器元素修改后,目前容器中的元素:"+list);
        //删除
        list.remove(0);
        list.remove("a");
        System.out.println("容器元素删除后,目前集合容器中的元素:"+list);
        //查看
        System.out.println("获取第一个容器元素:"+list.get(0));
    
    }

 

三.遍历方式

① foreach

② iterator 迭代器

③ for


    public static void main(String[] args) {
        List list = new ArrayList<>();
        //增加
        list.add("a");
        list.add("b");
        list.add("c");

       ① foreach
        for (Object object : list) {
            System.out.println(object);
        }
        ② iterator 迭代器

        Iterator it = list.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }
        ③ for

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }

四.LinkedList

①对比ArrayList是数据结构

Linkedlist: 链表 特点:查询修改慢,增加删除快
Arraylist: 数组  特点:查询修改快,增加删除慢

J2EE&集合框架&List,java-ee,list,java,eclipse

②堆栈 队列

J2EE&集合框架&List,java-ee,list,java,eclipse

/**
 * 用linkedList完成一个堆栈容器
 * 1.考核linkedList的api方法
 * 2.考核堆栈/队列的数据结构特点
 * @author PC
 *
 */
public class Demo2 {
    public static void main(String[] args) {
        LinkedList ll = new LinkedList<>();
        ll.add("a");
        ll.add("b");
        ll.add("c");
        DuiZhan dz = new DuiZhan(ll);
        //定义一个方法,当这个方法被调用的时候,后存进去的元素要先输出,先存进去的元素要后输出
        System.out.println(dz.pop());
        System.out.println(dz.pop());
        System.out.println(dz.pop());
    }

}

class DuiZhan{
    private LinkedList ll;

    public DuiZhan(LinkedList ll) {
        super();
        this.ll = ll;
    }
//压栈  弹栈    
    public Object pop() {
        return ll.removeLast();
    }
    
}

 文章来源地址https://www.toymoban.com/news/detail-536691.html

五.增长因子论证

/**
 * linkedList调优
 * 元素存储在集合的过程
 * ArrayList
 * 数组 长度不可变
 * 
 * 1.证明数据结构就是数组
 * 2.为什么数组长度不可变,集合List长度可变
 * 
 * 增长因子(一次性扩容多少) 0.5倍  扩容1.5倍  1+0.5
 * @author PC
 *
 */
public class Demo3 {
    public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
        ArrayList al = new ArrayList<>(50);
        for (int i = 0; i < 100; i++) {
            al.add(i);
            System.out.println(i+"\r");
            getCurrentArrLength(al);
        }
        
    }
    //获取ArrayList al对象底层数组的长度
    private static void getCurrentArrLength(ArrayList al) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
        Field f = al.getClass().getDeclaredField("elementData");
        f.setAccessible(true);
        Object[] Object = (java.lang.Object[]) f.get(al);
        System.out.println("当前集合底层数组的容器长度"+Object.length);
    }
        

六.集合框架ArrayList中的重复元素去重及其底层原理

/**
 * list底层对象去重原理    跟equals
 * @author PC
 *
 */
public class Demo4 {
    public static void main2(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
        List list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println("目前集合容器中的"+list);
        //去重
        if(!list.contains("b")) {
            list.add("b");
        }
        System.out.println("目前集合容器中的"+list);
    }
    public static void main(String[] args) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
        List list = new ArrayList<>();
        list.add(new Student(1,"zs"));
        list.add(new Student(2,"ls"));
        list.add(new Student(3,"lx"));
        System.out.println("目前集合容器中的"+list);
        //去重
        if(!list.contains(new Student(3,"lx"))) {
            list.add(new Student(3,"lx"));
        }
        System.out.println("目前集合容器中的"+list);
    }
}
class Student{
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    public Student() {
        // TODO Auto-generated constructor stub
    }
    public Student(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + "]";
    }
    
    @Override
    public boolean equals(Object obj) {
        System.out.println("被调了。。。");
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Student other = (Student) obj;
        if (id != other.id)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }

到了这里,关于J2EE&集合框架&List的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • J2EE&反射

    目录 一.什么是反射        用实体类Student做示范 三.反射实例化 四.反射动态方法调用 五.反射读写属性 反射java语言中的一种机制,通过这种机制可以动态的实例化对象,读写属性,调用方法 二.类类 Class.forName(完整类名) 类名 .class 对象 .getClass        用实体类Student做示范

    2024年02月16日
    浏览(30)
  • J2EE&XML建模

    目录 用一个xml-config文件实例: 先看config.xml文件 再看 ActionModel ConfigModel ActionNotFoundException ForwardNotFoundException ConfigModelFactory ActionDuplicateDefinitionException ForwardDuplicateDefinitionException InvalidPathException 用一个xml-config文件实例:  ActionModel ConfigModel ForwardModel      ActionNotFoundExcepti

    2024年02月16日
    浏览(27)
  • J2EE&通用分页02

    目录 一.重构-提取公用方法            1.为了进行公共方法的抽取,需要找出上面实习中的可通用部分,和差异化部分     2.公用方法封装思路       3. 具体实现 二.分页标签 2.1 准备一个Servlet  3.2 结果展示页面 三. 过滤器解决中文乱码问题 四.加入分页功能 四.封装分

    2024年02月15日
    浏览(31)
  • J2EE项目部署与发布(Windows版本)

    目录 一、会议OA单体项目Windows部署 1.1 数据测试 1.2 项目部署 1.3 报错解决 1.4 最终效果 二、spa前后端分离项目Windows部署 2.1 后端代码测试 2.2 前端代码测试 2.3 项目部署 2.3.1 数据导入 2.3.2 后端部署 2.3.3 前端部署 2.3.3.1 Node.js环境配置 2.3.4 端口问题解决 2.3.4.1 method1 2.3.4.2 meth

    2024年02月07日
    浏览(33)
  • J2EE项目部署与发布(Linux版本)

    目录 一.jdktomcat安装 1.jdk的安装  1.2解压对应的安装包 1.3配置环境变量  2.tomcat的安装  二.mysql的安装 三.后端接口部署  后端部署 导入war包 修改端口  开启访问 1.jdk的安装 登录VMware Workstation Pro 然后连接MobaXterm      将 jdk tomcat mysql 导入到MobaXterm   1.2解压对应的安装包  

    2024年02月06日
    浏览(25)
  • 虚拟机部署与发布J2EE项目(Linux版本)

                                                      🎬 艳艳耶✌️:个人主页                                                   🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》                                                     ⛺️ 越努力 ,越幸

    2024年02月06日
    浏览(33)
  • J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

      简单来说,上面所有的名字指的都是一个东西 Java Platform, Enterprise Edition 上面的几个名词都是下面的内容的简写: J2EE(Java 2 Platform, Enterprise Edition) Java EE (Java Platform, Enterprise Edition) Jakarta EE(Jakarta Enterprise Edition) 上面的排序是按照时间演进来进行排序。   1998年12月,SUN公司发

    2023年04月26日
    浏览(30)
  • 14天学会:基于J2EE的JAVA WEB基础

    手把手教你:基于Django的新闻文本分类可视化系统(文本分类由bert实现) 手把手教你:基于python的文本分类(sklearn-决策树和随机森林实现) 手把手教你:岩石样本智能识别系统 本文通过一个14天的学习文档教会大家学会 基于J2EE的JAVA WEB基础 本次上传的资源比较大,因此分

    2024年02月15日
    浏览(31)
  • 小研究 - J2EE 应用服务器的软件老化测试研究

    软件老化现象是影响软件可靠性的重要因素,长期运行的软件系统存在软件老化现象,这将影响整个业务系统的正常运行,给企事业单位带来无可估量的经济损失。软件老化出现的主要原因是操作系统资源消耗殆尽,导致应用系统的性能下降甚至崩溃或宕机。文中监测J2EE 应

    2024年02月11日
    浏览(26)
  • 【Linux】虚拟机部署与发布J2EE项目(Windows版本)

    跨平台性:Java虚拟机(JVM)提供了一个中间层,使得Java应用程序可以在不同的操作系统上运行,无需进行代码修改。这意味着您可以使用一套Java代码,在不同的硬件和操作系统上部署和运行应用程序。 安全性:Java虚拟机提供了安全管理机制,可以对Java应用程序的执行过程

    2024年02月08日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包