Java学习笔记之——集合
集合是类,用来存储多个数据,有属性、方法
集合是一个可变数组,保存相同元素并且长度可变
1. 体系
(1)Collection:存储一个一个的值
Iterable:
Iterable<T> iterator()
返回一个组T类型的元素上进行迭代的迭代器
用来遍历元素的对象
Collection子接口:List、Set
List
特点:元素可重复,有序(有序号的),完全可以使用List替换数组
有序:放进去的顺序和拿出来的顺序是一样的
Set
特点:元素不可重复,无序(无序号的)
无序:放进去的顺序和拿出来的顺序不一样
Queue:队列(会和线程公用,暂时不掌握)
(2)Map:存储一对一对的值,键值对(key-value)
泛型
只能是引用类型
可以把数据类型变量化
可以根据需要指定类型
a.可以在类上加泛型,整个类都可以用,在创建对象时指定类型
可以限定泛型的类型:
T extends 父类:向下限定
T super:向下限定
b.对于静态方法,可以在方法上加泛型
访问修饰符<泛型列表> 返回值类型 方法名(参数列表){
实现代码
}
2. ArrayList
使用语法:ArrayList<引用数据类型> arrayList=new ArrayList<>();

常用方法:


3. 遍历集合(List的遍历)
方法一:for循环
for(int i=0;i<array.size();i++){
system.out.printlt(array.get(i));
}
方法二:迭代器(必须掌握)
遍历数组尽量使用迭代器,因为靠谱

(1)迭代器相关方法API:
|
void |
forEachRemaining(Consumer<? super E> action) 对每个剩余元素执行给定的操作,直到所有元素都被处理或动作引发异常。 |
|
boolean |
hasNext() 如果迭代具有更多元素,则返回 true 。 |
|
next() 返回迭代中的下一个元素。 |
|
|
void |
remove() 从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 |
(2)迭代器删除方法使用案例

方法三:foreach(增强for循环)
语法:for(元素类型 变量名:Collection集合){
system.out.printl(变量名);
}

Collection,数组都可以
实现Iterable接口的类可以成为foreach的目标
适用于做遍历输出
本质上:还是使用迭代器
4. ArrayList的排序
方法一:冒泡排序
方法二:Comparable比较接口
接口 Comparable<T>
参数类型:
T - 可以将此对象与之进行比较的对象类型
方法:
int compareTo(T o) :比较此对象与指定对象的顺序
o - 要比较的对象
返回:
负整数、零或正整数,根据此对象是小于、大于、等于指定对象
当前对象大于传入对象,返回正整数
当前对象等于传入对象,返回零
当前对象小于传入对象,返回负整数
一个类实现是这个接口,意味着可以通过int compareTo进行比较大小
借助Collections:工具类
short()方法:排序
总结:
1) 元素类实现Comparable接口,重写CompareTo方法


2) 利用Collection.short(List)排序

方法三:单独一个类实现Comparator接口,具备比较两个元素大小的方法
Comparator<T>:
int compare(T o1,T o2) 比较用来排序的两个参数
参数:o1---要比较的第一个对象
o2---要比较的第二个对象
返回:
根据第一个参数小于、等于、大于第二个参数分别返回负整数、零、正整数
1)定义类,实现Comparator的继承,重写Compare方法

2)实现排序

或者使用匿名内部类直接实现排序:

Java学习笔记之——集合的更多相关文章
- Java学习笔记之---集合
Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...
- Java学习笔记之集合
集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...
- 【原】Java学习笔记026 - 集合
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...
- java学习笔记之集合家族2
集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...
- 【Java学习笔记】集合转数组---toArray()
package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...
- 【Java学习笔记】<集合框架>定义功能去除ArrayList中的重复元素
import java.util.ArrayList; import java.util.Iterator; import cn.itcast.p1.bean.Person; public class ...
- java学习笔记之集合家族1
集合 集合介绍: 由于数组中存放对象,对对象操作起来不方便.java中有一类容器,专门用来存储对象. 集合与数组的区别: 1.数组的长度固定的,而集合长度时可变的 2.数组只能储存同一类型的元素,而且 ...
- 【原】Java学习笔记028 - 集合
package cn.temptation; import java.util.HashSet; import java.util.Set; public class Sample01 { publi ...
- 5.3类集(java学习笔记)集合的输出
一.集合的输出 迭代输出:Iteratror接口 在输出集合时,最标准的方法是使用迭代器迭代输出. 1,List中的迭代器. Iterator中包含三个方法: hasNex()t判断集合内是否有元素存 ...
- java学习笔记——Collection集合接口
NO 方法名称 描述 1 public boolean add(E e) 向集合中保存数据 2 public void clear() 清空集合 3 public boolean contains(O ...
随机推荐
- 封装一个 员工类 使用preparedStatement 查询数据 (2) 使用 arrayList 集合
创建 员工=类生成 有参构造 get set 方法 toString 方法 package cn.hph; public class emp1 { //创建员工类的属性 private int id; ...
- 安卓开发学习笔记(七):仿写腾讯QQ登录注册界面
这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式. 废话不多说,直接上代码:一.activity. ...
- 1 小时 SQL 极速入门(二)
上篇我们说了 SQL 的基本语法,掌握了这些基本语法后,我们可以对单表进行查询及计算分析.但是一个大的系统,往往会有数十上百张表,而业务关系又错综复杂.我们要查的数据往往在好几张表中,而要从多张表中来 ...
- 小程序webview实践
小程序webview实践 -- 张所勇 大家好,我是转转开放业务部前端负责人张所勇,今天主要来跟大家分享小程序webview方面的问题,但我并不会讲小程序的webview原理,而我主要想讲的是小程序内 ...
- Java核心技术及面试指南 多线程并发部分的面试题总结以及答案
7.2.10.1有T1.T2.T3三个线程,如何保证T2在T1执行完后执行,T3在T2执行完后执行? 用join语句,在t3开始前join t2,在t2开始前join t1. 不过,这会破坏多线程的并 ...
- vue+cordova构建跨平台应用集成并使用Cordova plugin
安装 //安装 vue-cil npm install --global vue-cli //安装cordova npm i cordova -g cordova 新建项目 //新建cordova 项 ...
- PHP 编码规范
这是给小组制定的php编码规范 该 PHP 编码规范基本上是同 PSR 规范的.有一部分的编码规范 PSR 中是建议,此编码规范会强制要求. 此编码规范 是以 PSR-1 / PSR-2 / PSR- ...
- xtrabackup备份
增量备份: xtrabackup --backup --target-dir=/data/backup/base --datadir=/var/lib/mysql xtrabackup --backu ...
- Zuul介绍
1. Zuul是什么 Zuul是所有从设备和web站点到Netflix流媒体应用程序后端请求的前门.作为一个边缘服务应用程序,Zuul被构建来支持动态路由.监视.弹性和安全性.它还可以根据需要将请求 ...
- Spring Security构建Rest服务-1300-Spring Security OAuth开发APP认证框架之JWT实现单点登录
基于JWT实现SSO 在淘宝( https://www.taobao.com )上点击登录,已经跳到了 https://login.taobao.com,这是又一个服务器.只要在淘宝登录了,就能直接访 ...