java 单列集合总结
Collection 接口
add()
remove()
contains()
clear();
size();
迭代器遍历(普通迭代器,不能再遍历过程中修改集合的长度)
List接口 单列集合 有序可重复 有索引
add(index,obj)
remove(index)
get(index)
set(index,obj)
List的遍历
for循环
迭代器
使用集合步骤
创建集合对象
创建元素对象(引用数据类型(包含基本数据类型包装类对象))
调用集合方法,增删改查
使用迭代器遍历集合( ListIterator 列表迭代器,可以在遍历过程中修改集合长度)
hashNext查看是否有下一个元素
如果有:调用next方法获取
二个儿子 Vector(自行利用API文档学习)
线程不安全:高效
ArrayList:底层是数组结构,查询快,增删慢
LinkedList:底层链表结构,查询慢,增删快
到底改用谁?
查询多:ArrayList
增删多:LinkedList
如果你根本不知道改用谁,就用ArrayList
Set接口 单列集合 无序不可重复
元素唯一,无序(存储和读取的顺序可能不一致)
HashSet
如何保证元素唯一?底层数据结构是哈希表,依赖于元素的哈希值
最终:hashcode方法和equals方法
顺序:
先比较hashcode的返回值
相同:继续调用equals方法比较元素的内容
不相同:直接添加到集合
HashSet存储基本数据类型和String:因为基本数据额类型包装类以及String重写hashCode和equals方法
HashSet存储自定义类型:需要重写hashcode和equals方法
TreeSet
如何保证元素唯一?
根据compareTo方法的返回值是不是0
如何元素排序
1. 元素所在的类实现Comparable接口,重写compareTo方法
2. 集合具有比较性,创建TreeSet集合对象的时候调用有参构造方法,传入比较器对象(匿名内部类)
遍历集合:迭代器和增强for循环
LinkedHashSet
底层是哈希表和链表
保证元素唯一和元素有序
增强for循环!!!!
集合遍历
for(元素类型 变量名:集合名){
强转 Object转为子类对象 使用子类的特有成员!!!!!!
输出变量名就是集合中的每一个元素
}
java 单列集合总结的更多相关文章
- java之List接口(单列集合)
List接口概述 查询API我们可知:java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对 象称为List集合.在Li ...
- Java之Iterator接口(遍历单列集合的迭代器)
Iterator接口概述 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator . Iterator 接口也是Java集合中的一员,但 ...
- Java之Collection接口(单列集合根接口)
集合概述 集合到底是什么呢?集合:集合是java中提供的一种容器,可以用来存储多个数据 集合和数组既然都是容器,它们有啥区别呢? 区别1: 数组的长度是固定的. 集合的长度是可变的. 区别2: 数组 ...
- Java学习:单列集合Collection
集合 学习集合的目标: 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型 ...
- Java中的集合(二)单列集合顶层接口------Collection接口
Java中的集合(二)单列集合顶层接口------Collection接口 Collection是一个高度封装的集合接口,继承自Iterable接口,它提供了所有集合要实现的默认方法.由于Iterab ...
- JAVA基础-集合(一)
一.结构 Collection接口为一些单列集合的根接口,其常用子接口为List接口.Set接口.List接口常用实现子类为ArrayList(数组)LinkedList(链表).Set接口常用实现子 ...
- Java面向对象 集合(下)
Java面向对象 集合(下) 知识概要: (1)Map集合的体系结构 (2)Map集合的方法 (3)HashMap TreeMap (4)集合框架中的常用工具类 ( ...
- java之集合概述
集合也称容器:从大的类别分成两类:Collection和Map,也即:单列和双列列表. java编程思想中一张图说明该体系的整体结构:其中黑色着重的类是经常使用的类. 1 Collection Col ...
- 获取单列集合,双列集合,数组的Stream流对象以及简单操作
获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此 ...
随机推荐
- A - Aragorn's Story HDU - 3966 树剖裸题
这个题目是一个比较裸的树剖题,很好写. http://acm.hdu.edu.cn/showproblem.php?pid=3966 #include <cstdio> #include ...
- 最短路 西北大学2019年春季校赛 ( 重现赛 ) 房间迷宫 求一个数的所有的约数nlogn
题目:https://www.cometoj.com/contest/33/problem/G?problem_id=1461(密码:jwjtxdy) 学习一下 求一个数的约数 复杂度n*logn # ...
- 【Hadoop离线基础总结】hive的窗口函数
hive的窗口函数 概述 hive中一般求取TopN时就需要用到窗口函数 专业窗口函数一般有三个 rank() over dense rank() over row_number() over 实例 ...
- 【Hadoop离线基础总结】日志采集框架Flume
日志采集框架Flume Flume介绍 概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.它可以采集文件,socket数据包.文件.文件夹.kafka等各种形式源数据,又可 ...
- 性能测试之数据库监控分析工具Grafana+Prometheus
使用到 Grafana+Prometheus+Mysql_exportor 使用Prometheus和Grafana,可以快速的构建我们性能测试的绝大多数的监控模型:数据库监控.服务器监控.Jvm监控 ...
- JUC(3)---CountDownLatch、CyclicBarrier和AQS
CountDownLatch可以让一个线程等待其他线程完成了各自的工作之后再执行.比如说一个切菜,一个人切肉,都准备完毕之后才能炒肉. 构造方法: public CountDownLatch(int ...
- android 防止多次点击,导致事件监听响应到其他界面
下面有个案例: A点击的时候就跳转到B界面,点击B界面后结束,返回到A界面中 1.此时在B界面中,设置点击事件,点击后结束B v.setOnClickListener(new OnClickListe ...
- 【雕爷学编程】Arduino动手做(47)---七段LED数码管模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- 微信小程序通信录
第一步:phone.wxml中 <view bindlongtap="clickPhone">{{phoneNum}}</view> 第二步:phone.j ...
- day06:三级菜单练习0218
#1:省份数列:data = { "北京":{ "昌平":{ "沙河":["oldboy","电信" ...