String

  • String类是不可修改的,创建需要修改的字符串需要使用StringBuffer(线程同步,安全性更高)或者StringBuilder(线程非同步,速度更快)。
  • 可以用“+”连接String。
  • 用String.format()创建格式化字符串。

ArrayList

  • 动态数组,可以动态的增加或者减少元素。
  • 常用操作:
    • 创建:ArrayList<Type> arrayList=new ArrayList<>();
    • 添加元素:add
    • 获取元素:get
    • 删除元素:remove
    • 获取数组大小:size
    • 判断是否包含某一元素:contains
    • 设置元素:set
    • 清空数组:clear
    • 判断是否为空:isEmpty
  • 遍历方式:通过下标索引效率最高
  • Type temp;
    for(int i=0;i<arrayList.size();i++){
    temp=arrayList.get(i);
    }
  • arrayList排序需要实现Comparator接口以实现自定义排序
  • Comparator<String> comparator=new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
    if(o1.compareTo(o2)>0) return 1;
    if(o1.compareTo(o2)<0) return -1;
    return 0;
    }
    };

Stack

  • 由vector拓展而来
  • 常用操作:push,peak,pop,search,isEmpty
  • public static void stackTest() {
    Stack<String> stack=new Stack<String>();
    //将元素压入栈顶
    System.out.println(stack.push("haha"));
    System.out.println(stack.push("yes"));
    //栈顶元素的search结果为1,然后从栈顶向栈底依次递增
    System.out.println(stack.search("haha"));
    //查看栈顶元素
    System.out.println(stack.peek());
    //弹出栈顶元素并返回栈顶元素
    System.out.println(stack.pop());
    //判断栈是否非空
    System.out.println(stack.isEmpty());
    }

Queue

  • 是一个接口,LinkedList实现Queue接口
  • 常用操作:offer,peek,poll,isEmpty
  • public static void queueTest() {
    //LinkedList实现了Queue接口,所以构造时使用LinKedList
    Queue<String> queue=new LinkedList<String>();
    //在队列尾部增加元素,并返回是否增加成功
    System.out.println(queue.offer("abc"));
    System.out.println(queue.offer("def"));
    //返回队首元素,若队列空,则返回null;(ps:element在队列空时抛出异常)
    System.out.println(queue.peek());
    //弹出队首元素,并返回队首元素,若队列空则返回null
    System.out.println(queue.poll());
    //判断队列是否空
    System.out.println(queue.isEmpty());
    }

LinkedList

  • 双向链表,非同步
  • 常用操作:addFirst,addLast,add,getFirst,getLast,get,removeFirst,removeLast,remove,isEmpty
    public static void linkedlistTest() {
    LinkedList<String> linkedList=new LinkedList<String>();
    //在链表头部加,尾部加,任意位置加元素
    linkedList.addFirst("haha");
    linkedList.addLast("yali");
    linkedList.add(1, "good");
    //输出链表
    System.out.println("first element:"+linkedList.getFirst());
    System.out.println("last element:"+linkedList.getLast());
    for(int i=0;i<linkedList.size();i++) System.out.println(linkedList.get(i));
    //删除任意位置,头部,尾部的链表元素
    linkedList.remove(1);
    linkedList.removeFirst();
    linkedList.removeLast();
    //判断链表是否空
    System.out.println(linkedList.isEmpty());
    }

HashMap

  • 非同步
  • public static void hashmapTest() {
    HashMap<String, Integer> hashMap=new HashMap<String, Integer>();
    //向哈希表中添加元素
    hashMap.put("tp", 123);
    hashMap.put("zp", 567);
    System.out.println(hashMap);
    //通过迭代器便利哈希表
    for(Iterator<Entry<String, Integer>> iterator=hashMap.entrySet().iterator();iterator.hasNext();){
    Entry<String, Integer> entry=iterator.next();
    System.out.println(entry.getKey());
    System.out.println(entry.getValue());
    }
    //查找哈希表中是否有该键
    System.out.println(hashMap.containsKey("he"));
    //查找哈希表是否有该值
    System.out.println(hashMap.containsValue(567));
    //删除哈希表中的键值对
    hashMap.remove("tp");
    System.out.println(hashMap);
    }

SUMMARY | JAVA中的数据结构的更多相关文章

  1. java中的数据结构(集合|容器)

    对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的 ...

  2. [转]详细介绍java中的数据结构

    详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...

  3. 详细介绍java中的数据结构

    详细介绍java中的数据结构 http://developer.51cto.com/art/201107/273003.htm 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个 ...

  4. Java中的数据结构及排序算法

    (明天补充) 主要是3种接口:List Set Map List:ArrayList,LinkedList:顺序表ArrayList,链表LinkedList,堆栈和队列可以使用LinkedList模 ...

  5. 动图+源码,演示Java中常用数据结构执行过程及原理

    最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...

  6. 动图+源码,演示 Java 中常用数据结构执行过程及原理

    ​阅读本文大概需要 3.7 分钟. 作者:大道方圆 cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想 ...

  7. Java中的数据结构有哪些?HashMap的工作原理是什么?

    Java中常用数据结构 常用的数据结构有哈希表,线性表,链表,java.util包中有三个重要的接口:List,Set,Map常用来实现基本的数据结构 HashMap的工作原理 HashMap基于ha ...

  8. Java中的数据结构-HashMap

    Java数据结构-HashMap 目录 Java数据结构-HashMap 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 1.1.2 HashMap继承图 1.2 H ...

  9. 18、Java中的 数据结构

    Java2中引入了新的数据结构 集合框架 Collection,下一节再谈论(非常重要,面试也常问). 1.枚举 (Enumeration) 1.1 Enumeration 源码: public in ...

随机推荐

  1. NX二次开发-UFUN获得当前图纸页有多少个视图UF_DRAW_ask_num_views

    #include <uf.h> #include <uf_draw.h> #include <uf_ui.h> UF_initialize(); //获得当前图纸页 ...

  2. NX二次开发-UF_OBJ_cycle_by_name遍历名字

    使用前自己要看好名字是加在body,还是face,还是curve,或者其他,别加错了. NX9+VS2012 #include <uf.h> #include <uf_obj.h&g ...

  3. NX二次开发-NX11创建表达式组NXOpen::ExpressionGroup

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> #include <uf_part.h> #include < ...

  4. LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)

    题目标签:Linked List 题目给了我们一组 linked list,让我们把每对nodes 互换位置. 新键一个dummy node,然后遍历list,每次建立 s1 和 s2 记录两个点,然 ...

  5. Typora--终于找到一个能够解决将csdn文章同步到hexo的完美编辑器(解决csdn图片防盗链导致无法直接复制文章的问题)。

    文章目录 需求 背景 新宠 告诉我,我的名字叫什么?大声点我听不见~ 页面 神奇之处 看得见的优点 如何设置项目根目录 如何显示图片? 于是最终操作流程 个人博客:https://mmmmmm.me ...

  6. RoadFlowCore 解决方案介绍及开发概述

    RoadFlow解决方案如下: RoadFlow.Business:业务层 RoadFlow.Integrate:组织机构获取层(如果你系统要使用第三方组织架构的时候修改这里面的方法即可) RoadF ...

  7. GIT学习记录3(分支管理)

    学习参考地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 本编随笔只是自己对 ...

  8. POJ 3761 Bubble Sort

    题目链接:https://vjudge.net/problem/POJ-3761 转自:https://blog.csdn.net/cscj2010/article/details/7820906 题 ...

  9. day 87 DjangoRestFramework学习一之restful规范、APIview、解析器组件、Postman等

    DjangoRestFramework学习一之restful规范.APIview.解析器组件.Postman等   本节目录 一 预备知识 二 restful规范 三 DRF的APIView和解析器组 ...

  10. Python 文件处理一

    1.路径下所有文件(不包含子文件) import os dirs = os.listdir(path) 注:dirs 是一个list 2.遍历路径下所有文件 def file_name(file_di ...