文章分类 -  集合框架

java基础
摘要:Java提供了一个操作Set、List和Map等集合的工具类 Collections,该工具类提供了大量方法对集合进行排序、查询和修改等操作,还提供了将集合对象置为不可变、对集合对象实现同步控制等方法。 这个类不需要创建对象,内部提供的都是静态方法。 阅读全文
posted @ 2022-12-17 03:31 Amireux-126 阅读(0) 评论(0) 推荐(0) 编辑
摘要:1、HashMap刚初始化时,table为null,为了节省空间;当添加第一个元素时,table容量为默认容量16. 2、当元素个数大于(HashMap默认容量16*负载因子0.75)时,会触发扩容机制,扩容后的大小为原来的2倍,目的是为了减少调整元素的次数。 3、JDK8中,当链表元素个数大于8时 阅读全文
posted @ 2022-12-17 02:17 Amireux-126 阅读(2) 评论(0) 推荐(0) 编辑
摘要:1、HashMap。 HashMap是一个散列表。它存储的结构是键值对(key-value)映射。JDK1.2。 特点 1、允许空键和空值,但空值只能有一个,放在首位。 2、无序。因为要根据hashCode重新计算位置。 3、JKD8前底层采用数组+链表。JDK8后采用数组+链表+红黑树。 4、线程 阅读全文
posted @ 2022-12-16 21:15 Amireux-126 阅读(30) 评论(0) 推荐(0) 编辑
摘要:Map集合是一组由键值对(key-value)组成的集合。Map集合中的没一个元素都包含一个键(key)元素和值(value)元素。 特点 1、是一个双列集合,赋值的时候必须同时给Key和value赋值。 2、key不可以重复,是唯一的;value可以重复,不唯一。 3、一个key只能对应一个val 阅读全文
posted @ 2022-12-16 19:09 Amireux-126 阅读(5) 评论(0) 推荐(0) 编辑
摘要:public static void main(String[] args) { TreeSet<String> treeSet = new TreeSet<>((o1, o2) -> { int n1 = o1.length() - o2.length(); int n2 = o1.compare 阅读全文
posted @ 2022-12-16 05:37 Amireux-126 阅读(66) 评论(0) 推荐(0) 编辑
摘要:Comparator 是一个函数式接口。 它经常用于没有天然排序的集合进行排序,如 Collections.sort 或 Arrays.sort 或者对于某些有序数据结构的排序规则进行声明,如 TreeSet 、 TreeMap 。 也就是该接口主要用来进行集合排序。 Comparator的使用 p 阅读全文
posted @ 2022-12-16 05:26 Amireux-126 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1、HashSet。 1、基于HashCode来计算元素存储位置。 2、当存入的元素HashCode相同时,会调用equals方法进行确认,如果为true,则代表已经存在相同元素,则拒绝存入。 特点 1、基于HashMap实现,不允许元素重复。 2、允许存在null值,但只能有一个null值。 3、 阅读全文
posted @ 2022-12-16 05:10 Amireux-126 阅读(91) 评论(0) 推荐(0) 编辑
摘要:同传统集合相比,泛型集合是一种强类型的集合,他指定了集合的类型,从而解决了类型安全问题,同时避免了集合中每次的装箱、拆箱操作。 特点: 1、指定集合的类型,保证集合元素类型的一致性。 2、编译时检查类型,而不是运行时发现问题,抛出异常。 3、访问时,不需要在做装箱、拆箱操作。 类型转换异常问题 pu 阅读全文
posted @ 2022-12-16 03:04 Amireux-126 阅读(44) 评论(0) 推荐(0) 编辑
摘要:java泛型是JDK5引用的一个新特性。反省的本质就是类型参数化,将类型指定为参数进行传递。 泛型的好处 1、编译期类型安全。 2、避免了强制类型转换时的异常。 3、一个类可以操作多种类型的数据,提高了代码的复用性。 泛型类 /** * 泛型类 * 语法:类名<T>,类型<T,E>.多个参数间用,( 阅读全文
posted @ 2022-12-16 01:10 Amireux-126 阅读(5) 评论(0) 推荐(0) 编辑
摘要:1、ArrayList基于数组实现;LinkedList基于链表实现。 2、ArrayList查询效率快,因为使用到了索引;LinkedList查询效率慢,因为要循环遍历集合节点。 3、ArrayList对元素增、删效率慢,因为要对集合重新排序;LinkedList增删快,因为不涉及到重新排列,只需 阅读全文
posted @ 2022-12-16 00:44 Amireux-126 阅读(8) 评论(0) 推荐(0) 编辑
摘要:transient int size = 0; /** * Pointer to first node. * Invariant: (first == null && last == null) || * (first.prev == null && first.item != null) */ t 阅读全文
posted @ 2022-12-16 00:26 Amireux-126 阅读(1) 评论(0) 推荐(0) 编辑
摘要:1、ArrayList 1、底层使用数组实现。查询快、增删慢。 2、线程不安全,运行效率快。 创建User用户类 public class User implements Serializable { private String name; private int age; public User 阅读全文
posted @ 2022-12-15 03:43 Amireux-126 阅读(5) 评论(0) 推荐(0) 编辑
摘要:一、添加元素时,如果元素为数字类型时,会有一个自动装箱的操作,也就是new Integer(20)。 list.add(20);//等价于list.add(new Integer(20)); 二、删除元素时,如果元素为数字类型,想要通过元素来进行删除,需要做一个装箱操作,new Integer()。 阅读全文
posted @ 2022-12-15 02:39 Amireux-126 阅读(28) 评论(0) 推荐(0) 编辑
摘要:概念 Set接口继承了Collection,具有Collection接口的所有方法。 Set接口并没有提供其他方法,Set的方法全部继承于Collection。 特点 1、不可重复。集合中的元素是唯一的。 2、无序。元素存入的顺序和取出的顺序不一致。 3、没有索引。 实例化Set对象 //实例化Se 阅读全文
posted @ 2022-12-15 00:02 Amireux-126 阅读(7) 评论(0) 推荐(0) 编辑
摘要:概念 List接口继承了Collection,具有Collection接口的所有方法。 特点 1、有序。List集合中元素的插入顺序和取出顺序是一样的。 2、可重复。List集合中的元素是可以重复的。 3、索引。List集合可以通过索引对元素进行操作。 List集合中常用的方法 方法 说明 addA 阅读全文
posted @ 2022-12-14 23:56 Amireux-126 阅读(12) 评论(0) 推荐(0) 编辑
摘要:特点 1、Collection接口是所有单列集合的最顶级接口,里面定义了单列集合通用的接口。 2、任意的单列集合都可以使用Collection中的接口。 Collection常用的方法 方法 说明 size() 集合的元素个数 isEmpty() 判断集合中的元素个数是否为0 contains(Ob 阅读全文
posted @ 2022-12-14 23:39 Amireux-126 阅读(3) 评论(0) 推荐(0) 编辑
摘要:1、单列集合Collection。 2、键值对集合Map。 阅读全文
posted @ 2022-12-14 22:40 Amireux-126 阅读(2) 评论(0) 推荐(0) 编辑
摘要:一、什么是集合? 集合是对象的容器。定义了对多个对象进行操作的常用方法。可实现数组的功能。 二、集合和数组的区别 1、数组的长度是固定的;集合的长度是不固定的。 2、数组可以存储基本类型和引用类型;集合只能存储引用类型。 阅读全文
posted @ 2022-12-14 03:39 Amireux-126 阅读(12) 评论(0) 推荐(0) 编辑