集合是类,用来存储多个数据,有属性、方法

集合是一个可变数组,保存相同元素并且长度可变

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 。

E

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学习笔记之——集合的更多相关文章

  1. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

  2. Java学习笔记之集合

    集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...

  3. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  4. java学习笔记之集合家族2

    集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...

  5. 【Java学习笔记】集合转数组---toArray()

    package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...

  6. 【Java学习笔记】<集合框架>定义功能去除ArrayList中的重复元素

    import java.util.ArrayList; import java.util.Iterator; import cn.itcast.p1.bean.Person; public class ...

  7. java学习笔记之集合家族1

    集合 集合介绍: 由于数组中存放对象,对对象操作起来不方便.java中有一类容器,专门用来存储对象. 集合与数组的区别: 1.数组的长度固定的,而集合长度时可变的 2.数组只能储存同一类型的元素,而且 ...

  8. 【原】Java学习笔记028 - 集合

    package cn.temptation; import java.util.HashSet; import java.util.Set; public class Sample01 { publi ...

  9. 5.3类集(java学习笔记)集合的输出

    一.集合的输出 迭代输出:Iteratror接口 在输出集合时,最标准的方法是使用迭代器迭代输出. 1,List中的迭代器. Iterator中包含三个方法: hasNex()t判断集合内是否有元素存 ...

  10. java学习笔记——Collection集合接口

    NO 方法名称 描述 1 public boolean add(E e) 向集合中保存数据 2 public void clear() 清空集合 3 public boolean contains(O ...

随机推荐

  1. ubuntu18.04新体验

    虽然ubuntu18.04LST版本早出来了,但自己原来的ubuntu16.04还可以用,就懒得折腾了. 但最近ubuntu崩了,就想尝尝鲜...结果发现还挺好用的,准确地说,ubuntu是越来越好用 ...

  2. windows下 mysql 5.6.40 卸载 安装 修改密码

    最近执行另一个mysql版本导出的sql脚本,出现问题!出于一些原因,把之前的mysql5.5卸载,由于卸载不干净出现了一些问题.特此总结方法! 参考链接: https://blog.csdn.net ...

  3. 问题:win7下配置好服务器就是不能查询数据库。(已解决)

    我用C写访问mysql的CGI程序,可以执行. 但是,当我写好网页再去访问这个CGI,出现下面的错误 我的环境是:IIS作为服务器,MYSQL数据库,VC++6.0写CGI. 跟踪了一下,发现只要我调 ...

  4. 高德Location

    1.创建Demo,获取key 打开高德开发平台 → 我的应用 → 创建应用 → 创建新Key 说明: 1.发布版安全码获取:用自己的签名打包成apk安装软件,用SHA1工具查看 2.调试版安全码获取: ...

  5. FCC(ES6写法) Map the Debris

    返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: avgAlt}. 思路: 直接使用公式 ...

  6. ASP.NET WebApi OWIN 实现 OAuth 2.0(自定义获取 Token)

    相关文章:ASP.NET WebApi OWIN 实现 OAuth 2.0 之前的项目实现,Token 放在请求头的 Headers 里面,类似于这样: Accept: application/jso ...

  7. Hash及HashMap简介

    Hash简介: Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射 ...

  8. [Swift]LeetCode316. 去除重复字母 | Remove Duplicate Letters

    Given a string which contains only lowercase letters, remove duplicate letters so that every letter ...

  9. [Swift]LeetCode332. 重新安排行程 | Reconstruct Itinerary

    Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], r ...

  10. [Swift]LeetCode509. 斐波那契数 | Fibonacci Number

    The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such th ...