一些小建议:

在使用集合的时候如果不太清楚需求我们可以像对列一样如下:

Queue expres=new ArrayDeque<>();

重新指定类型,来进行更换

Queue expres=new LinkedList<>();

Java库中的具体:

ArrayList

一种可以动态增长和缩减的索引序列

LinkedList

一种可以在任何位置进行高效地插入和除操作的有序序列

ArrayDeque

一种用循环数组实现的双端队列

Hashset

一种没有重复元素的无序集合

Treeset

一种有序集

Enumsel

一种包含枚举类型值的集

Linkedhashset

一种可以记住元素插入次序的集

PriorityQueue

一种允许高效除删除最小元素的集合

HashMap

一种存储键/值关联的数据结构

TreeMap

一种键值有序排列的映射表

EnumMap

一种键值属于枚举类型的映射表

LinkedHashMap

一种可以记住健/值项添加次序的映射表

WeakHashMap

一种其值无用武之地后可以被垃圾回收器回收的映射表

首先两种集合框架

这两种框架大多基于. equals,.hashCode这两个类来判断是否有重复项等,所以或不想按照虚地址来进行比较,则进行重写

@Override//重写hashCode

public int hashCode() {

return Objects.hash(name, age);

}

@Override//重写equals

public boolean equals(Object o) {

if (this == o) return true;

if (o == null || getClass() != o.getClass()) return false;

User user = (User) o;

return age == user.age &&

Objects.equals(name, user.name);

}Set:元素无序、不可重复的集合 ---类似高中的“集合”

List:元素有序,可重复的集合 ---”动态”数组

通用方法

.isEmpty()//判断是否为空

dates.add(new Date());//用来做添加元素

List:

调用arraylist类,对传入的类型做规定,原来为泛型现在改为Date型

ArrayList dates=new ArrayList<>();

排序的设置,如下

users.sort(new Comparator() {

@Override

public int compare(User o1, User o2) {

return o1.getAge()-o2.getAge();

}

});

//使用lambda表达式users.forEach((i)-> System.out.println(i));

users.sort((i,o)->i.getAge()-o.getAge());//这两种等价,注意只有在List中才有.sort方法

.asList(T... a) 将数组转为集合的方法,返回的是List集合,利用Arrays.asList方法返回的List是不允许add和remove的,这种list的长度不可变,因为底层依然是写数组。

List integers = Arrays.asList(1, 2, 3, 4);

.forEach,java8提供的内部厉遍操作

dates.forEach((j)-> System.out.println(j));

Set:

HashSet 具有以下特点:不能保证元素的排列顺序

HashSet 不是线程安全的

集合元素可以是 null

LinkedHashSet 是 HashSet 的子类,根据元素的 hashCode 值来决定元素的存储位置,但它同时使用链表维护元素的次序,这使得元素看起来是以插入顺序保存的。

LinkedHashSet插入性能略低于 HashSet,但在迭代访问 Set 里的全部元素时有很好的性能。

Set users=new HashSet<>();

Set users=new LinkedHashSet<>();//按照类里面的compareTo接口实现的方法来排序 TreeSet ts = new TreeSet<>();Set users=new TreeSet<>();多种写法,必须在类里面定义

compareTo接口

java 集合操作_Java 集合的操作 个人方法总结相关推荐

  1. java 集合 接口_Java集合之Collection接口

    1 - Java集合介绍 /* 1. 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储. 2. 另一方面,使用Array存储对象方面具有一些弊 端,而 ...

  2. Java集合学习_Java集合学习(适合新手)

    集合框架 由⼀组类和接⼝组成的⼀个体系. Collection 集合框架 最基本的接⼝,⼀个 Collection 可以存储⼀组⽆序.不唯⼀的对象,实际开发中不会直接使⽤ Collection 进⾏开 ...

  3. java集合总结_java集合小总结

    java集合就是一个容器. 1.     集合概述 l       为了保存不确定的数据,或者对象,以及保存具有映射关系的数据. l       所有的集合类都位于java.util包下. 1.1.  ...

  4. java集合继承_java集合继承关系

    数组虽然也可以存储对象,但长度是固定的:集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象. 集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象. 上述类图中, ...

  5. java集合迭代器_java集合迭代器

    一.Java中有一个设计模式是迭代器模式 1.迭代器模式定义 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 2.迭代器模式概述 Java集 ...

  6. java族谱设计_Java集合族谱总结

    集合族谱核心成员 集合族谱核心成员 所有的集合类,都实现了Iterator接口,这是用于遍历集合中元素的接口:Java集合框架核心是两个类型的容器,一种是集合(Collection),存储单一元素,一 ...

  7. java set复制_Java 集合系列之三:Set基本操作

    1. Java Set 1. Java Set 重要观点 Java Set接口是Java Collections Framework的成员. Set不允许出现重复元素-----------无重复 Se ...

  8. java concurrentmap原理_Java集合番外篇 -- ConcurrentHashMap底层实现和原理

    概述 距离上一次集合篇结束已经过了好久了, 之前说要写一下番外,但是太忙了,总也找不出相对松散的时间,也有点静不下心来,最近花了点时间,于是便有了这篇博客. 在开始之前先介绍一个算法, 这个算法和Co ...

  9. java dvd集合框架_JAVA 集合框架

    1.总览图 总览:(虚线箭头为依赖.虚线空心三角为实现.实线空心三角为继承)关于 UML 图表示可看此链接 Collection: Map: 2.Iterator .Iterable.ListIter ...

  10. java字符串操作_Java的字符串操作

    Java的字符串操作 小型送分题:Java有字符串(String),StringBuffer(字符串缓存),StringBuilder(字符串建造者?)各种实现,究其原因还是历史上的各种坑. 一.不同 ...

最新文章

  1. 【字符串哈希】【哈希表】Aizu - 1370 - Hidden Anagrams
  2. java删除有序数组中的重复元素_java去除已排序数组中的重复元素
  3. 32.210内存的知识
  4. django手机访问_Django对接支付宝电脑网站、App支付步骤详解!这个框架是真强!...
  5. mysqli num php_php mysqli_num_rows函数怎么用
  6. 不要在viewWillDisappear:方法中移除通知
  7. 使用 Visual Studio 2019 批量添加代码文件头
  8. 数学基础知识(高精、快速幂、龟速乘……)
  9. 祁飞机器人_转自祈飞:什么是智能机器人
  10. Java中的StringBuffer、StringBuilder和包装器类型
  11. java多线程-线程池
  12. 设计模式面对面之单例模式
  13. mysql-innodb笔记和Spring的那些事
  14. “食物链”的顶端合约ALOKEX 顺势而行一万年太久只争朝夕
  15. 威金又现!专杀收集整合
  16. Epsilon-Greedy算法
  17. 微信视频号视频保存,微信视频号视频下载的方法
  18. 推荐 5 个精选公众号
  19. 8月房价上涨城市数量增多 涨幅全线扩大
  20. Eclipse汉化版本和导入src

热门文章

  1. 惊艳二重奏!专家这样用开源软件建立监控体系
  2. Tensorflow保存神经网络参数有妙招:Saver和Restore
  3. 一个编程指南还有这么多道道儿?
  4. [技术分享]【DLI跨源】当DLI遇见MongoDB
  5. 【华为云技术分享】浅谈产品模型(Profile)在程序设计中的作用
  6. 12.16直播:藏在华为物联网操作系统里的“秘密”
  7. Linux系统通过FTP进行文档基本操作【华为云分享】
  8. 华为云EI人脸识别接口初探
  9. 外国人怎么看祖冲之量子计算机,我国“祖冲之号”量子计算机再次刷新纪录:1.2 小时完成超算 8 年计算量...
  10. linux 连接 android,linux下android连接真机测试