集合
文章平均质量分 74
西红柿番茄炒蛋
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高并发下线程安全集合选择
线程不安全会出现丢值或者重复的情况Collection集合下的线程安全重要:支持复合操作的线程安全的1.CopyOnWriteArrayList();2.CopyOnWriteHashMap别的线程安全的,都是不支持复合操作的StringBuffer1.List集合CopyOnWriteArrayList();线程安全;支持复合操作及在迭代器中一遍编列 一边添加元素原理:写入并复制,每次要创造新的并添加进去刚加的;内部lock锁加持使线程安全;自己复制自己的;添加自己的;原创 2021-01-11 01:30:10 · 473 阅读 · 2 评论 -
应用场景
Collection下的有List接口和Queue接口、Set接口ListArrayList查询速度快,但删改增慢LinkedList增删改快,查询慢Queue有多个实现类;只需记住ArrayList当作实现类用于单向队列这是一个接口;需要借助LinkedList当做实现类来操作Queue queue=new LinkedList();方法:add(); 实现与Collection接口offer:添加元素到集合;返回值类型是Booleanpeek:检索第一个元素不删除;为null返原创 2020-12-26 08:54:33 · 230 阅读 · 0 评论 -
泛型
数据类型参数化将数据类型自动参数化;一旦像改集合内添加的元素不是改类型的就会报错List list =new ArrayList<>();list.add(“abdad”);list.add(“唐曾”);list.add(4);//直接保存 只能存储类型的,否则报错List list =new LinkedList<>();//只能存储Integer类型用于存储自定义类型的集合,直接在<自定义类>...原创 2020-12-25 21:36:29 · 129 阅读 · 0 评论 -
Set接口
HashSet原理:底层就是HashMap写的;而HashMap是数组加链表实现的。JDK1.7叫做 Entry JDK1.8叫做 Node;JDk1.8除了数组+链表‘还加入了红黑树。我们这里统称Entry1.向HashMap存储元素时,最多要进行两次比较;第一次比较是根据存储的内容计算哈希值判断存储位置;则必须重写HashCode这个方法;若该位置为null则直接存储;否则要进行第二次判断2.第二次判断是判断内容;要重写equals(); 判断内容是否相等;相等则删掉;不相等则在改元素位置的下面原创 2020-12-25 21:28:50 · 131 阅读 · 0 评论 -
字符串的缓冲区
StringBuffer构造器:1.StringBuffer(); 默认大小为162.StringBuffer(int number);更改缓冲区的默认值3.StringBuffer(String str);创建这个字符串大小的缓冲区方法1.append();拼接长度,String里的concat();每次都需要创建新的;影响性能,尤其在高并发的时候2.toString(); 将StringBuffer改为字符串3.capacity(); 获取当前StringBuffer的默认容量大小4原创 2020-12-25 20:42:35 · 378 阅读 · 0 评论 -
集合难题
封装动态数组解题思路;和数组一样;难点是插入删除的前后整体移动设计一个Student类,该类中包括学生的姓名和成绩。创建Student类的5个对象,如下所示:第三题我用迭代器做出来了执行测试类package 编程题1;import java.util.ArrayList;import java.util.Iterator;public class ArrayListUse { public static void main(String[] args) { ArrayLi原创 2020-12-24 01:46:29 · 950 阅读 · 0 评论 -
迭代器
最古老的一种遍历不能复合调用方法,否则报错只能调用依一次;相当于抛出去直接扔掉回收调用迭代器之前;不能对其进行remove删除;否则报线程异常最好不要多个 next()一起用;会报错适用场景适合遍历没有下标的集合 比如Map集合迭代器局限性挺大的;只能迭代一次遍历import java.util.ArrayList;import java.util.Iterator;ArrayList list =new ArrayList();list.add();list.add();.原创 2020-12-24 01:36:27 · 143 阅读 · 0 评论 -
List集合
概念:是封装的链表;删除元素不需要移动元素;因为在链表中没有下标可循 链表中根本没有下标;特点:可以添加重复的元素;与数组相比;增删快list的增删查改package List包;import java.util.ArrayList;import java.util.List;public class ListTest { public static void main(String[] args) { // TODO Auto-generated method stub Li原创 2020-12-22 18:58:56 · 156 阅读 · 0 评论 -
集合
概念:由若干个确定的元素所构成的整体;一个Java对象(一个类)可以在内部持有若干个其他Java对象,并对外提供访问接口;我们把这种Java对象称为集合 Java数组就是一种集合 有限的集合和无限集合(有理数)集合的特点:1.实现了接口和实现类的分离 有序表的接口:list 具体的实现类有:ArrayListLinkedList2.支持泛型 可以在一个集合放入同一种数据类型的元素list集合1.导入的包import java.util.Arr原创 2020-12-22 18:54:06 · 105 阅读 · 0 评论 -
集合框架
集合前身1.由数组 链表 树 栈 队列等结构封装而来概念:一些存储数据的类和接口组成的,这些类封装了一种或几种数据结构封装数组:ArrayList集合封装链表:LinkedList………基本的数据结构1.数组结构 线性 在遍历时效率高 通过索引来找 插入或删除效率低2.链表结构:单链表和双链表 链表是由节点组成的单链表:每个节点是数据和后节点组成的 一个是数据 一个是地址 只能从前往后找双链表: 一个节点存俩地址 ,分别存前地址和后地址 但是可以从后往前查找 占内存原创 2020-12-22 18:35:32 · 120 阅读 · 0 评论 -
ArrayList动态数组
自定义动态数组模拟ArrayList自定义接口抽象出这个类所有的功能 package ArrayListTest;//封装数组的集合接口,zhi存储字符串public interface MyList { void add(String str);//向集合末尾添加字符串 void add(int index,String str);//zai指定位置添加字符串 String remove(int index);//删除指定位置的字符串 void remove(String str原创 2020-12-22 18:59:41 · 295 阅读 · 0 评论
分享