Java_集合之一
1.Collection集合
1.1数组和集合的区别【理解】
- 相同点 - 都是容器,可以存储多个数据 
- 不同点 - 数组的长度是不可变的,集合的长度是可变的 
- 数组可以存基本数据类型和引用数据类型 - 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 
 
1.2集合类体系结构【理解】

1.3Collection 集合概述和使用【应用】
- Collection集合概述 - 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素 
- JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现 
 
- 创建Collection集合的对象 - 多态的方式 
- 具体的实现类ArrayList 
 
- Collection集合常用方法 - 方法名 - 说明 - boolean add(E e) - 添加元素 - boolean remove(Object o) - 从集合中移除指定的元素 - boolean removeIf(Object o) - 根据条件进行移除 - void clear() - 清空集合中的元素 - boolean contains(Object o) - 判断集合中是否存在指定的元素 - boolean isEmpty() - 判断集合是否为空 - int size() - 集合的长度,也就是集合中元素的个数 
1.4Collection集合的遍历【应用】
- 迭代器介绍 - 迭代器,集合的专用遍历方式 
- Iterator<E> iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到 
 
- Iterator中的常用方法 - boolean hasNext(): 判断当前位置是否有元素可以被取出  E next(): 获取当前位置的元素,将迭代器对象移向下一个索引位置 
- Collection集合的遍历 - 1 public class IteratorDemo1 {
 2 public static void main(String[] args) {
 3 //创建集合对象
 4 Collection<String> c = new ArrayList<>();
 5 
 6 //添加元素
 7 c.add("hello");
 8 c.add("world");
 9 c.add("java");
 10 c.add("javaee");
 11 
 12 //Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
 13 Iterator<String> it = c.iterator();
 14 
 15 //用while循环改进元素的判断和获取
 16 while (it.hasNext()) {
 17 String s = it.next();
 18 System.out.println(s);
 19 }
 20 }
 21 }
- 迭代器中删除的方法 - void remove(): 删除迭代器对象当前指向的元素 - 1 public class IteratorDemo2 {
 2 public static void main(String[] args) {
 3 ArrayList<String> list = new ArrayList<>();
 4 list.add("a");
 5 list.add("b");
 6 list.add("b");
 7 list.add("c");
 8 list.add("d");
 9 
 10 Iterator<String> it = list.iterator();
 11 while(it.hasNext()){
 12 String s = it.next();
 13 if("b".equals(s)){
 14 //指向谁,那么此时就删除谁.
 15 it.remove();
 16 }
 17 }
 18 System.out.println(list);
 19 }
 20 }
1.5增强for循环【应用】
- 介绍 - 它是JDK5之后出现的,其内部原理是一个Iterator迭代器 
- 实现Iterable接口的类才可以使用迭代器和增强for 
- 简化数组和Collection集合的遍历 
 
- 格式 - for(集合/数组中元素的数据类型 变量名 : 集合/数组名) { - // 已经将当前遍历到的元素封装到变量中了,直接使用变量即可 - } 
- 代码 - 1 public class MyCollectonDemo1 {
 2 public static void main(String[] args) {
 3 ArrayList<String> list = new ArrayList<>();
 4 list.add("a");
 5 list.add("b");
 6 list.add("c");
 7 list.add("d");
 8 list.add("e");
 9 list.add("f");
 10 
 11 //1,数据类型一定是集合或者数组中元素的类型
 12 //2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
 13 //3,list就是要遍历的集合或者数组
 14 for(String str : list){
 15 System.out.println(str);
 16 }
 17 }
 18 }
2.List集合
2.1List集合的概述和特点【记忆】
- List集合的概述 - 有序集合,这里的有序指的是存取顺序 
- 用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素 
- 与Set集合不同,列表通常允许重复的元素 
 
- List集合的特点 - 存取有序 
- 可以重复 
- 有索引 
 
2.2List集合的特有方法【应用】
方法介绍
| 方法名 | 描述 | 
|---|---|
| void add(int index,E element) | 在此集合中的指定位置插入指定的元素 | 
| E remove(int index) | 删除指定索引处的元素,返回被删除的元素 | 
| E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 | 
| E get(int index) | 返回指定索引处的元素 | 
示例代码
 1 public class MyListDemo {
 2     public static void main(String[] args) {
 3         List<String> list = new ArrayList<>();
 4         list.add("aaa");
 5         list.add("bbb");
 6         list.add("ccc");
 7         //method1(list);
 8         //method2(list);
 9         //method3(list);
10         //method4(list);
11     }
12 
13     private static void method4(List<String> list) {
14         //        E get(int index)      返回指定索引处的元素
15         String s = list.get(0);
16         System.out.println(s);
17     }
18 
19     private static void method3(List<String> list) {
20         //        E set(int index,E element)    修改指定索引处的元素,返回被修改的元素
21         //被替换的那个元素,在集合中就不存在了.
22         String result = list.set(0, "qqq");
23         System.out.println(result);
24         System.out.println(list);
25     }
26 
27     private static void method2(List<String> list) {
28         //        E remove(int index)       删除指定索引处的元素,返回被删除的元素
29         //在List集合中有两个删除的方法
30         //第一个 删除指定的元素,返回值表示当前元素是否删除成功
31         //第二个 删除指定索引的元素,返回值表示实际删除的元素
32         String s = list.remove(0);
33         System.out.println(s);
34         System.out.println(list);
35     }
36 
37     private static void method1(List<String> list) {
38         //        void add(int index,E element) 在此集合中的指定位置插入指定的元素
39         //原来位置上的元素往后挪一个索引.
40         list.add(0,"qqq");
41         System.out.println(list);
42     }
43 }
3.数据结构
3.1数据结构之栈和队列【记忆】
栈结构
先进后出
队列结构
先进先出
3.2数据结构之数组和链表【记忆】
数组结构
查询快、增删慢
队列结构
查询慢、增删快
4.List集合的实现类
4.1List集合子类的特点【记忆】
ArrayList集合
底层是数组结构实现,查询快、增删慢
LinkedList集合
底层是链表结构实现,查询慢、增删快
4.2LinkedList集合的特有功能【应用】
特有方法
| 方法名 | 说明 | 
|---|---|
| public void addFirst(E e) | 在该列表开头插入指定的元素 | 
| public void addLast(E e) | 将指定的元素追加到此列表的末尾 | 
| public E getFirst() | 返回此列表中的第一个元素 | 
| public E getLast() | 返回此列表中的最后一个元素 | 
| public E removeFirst() | 从此列表中删除并返回第一个元素 | 
| public E removeLast() | 从此列表中删除并返回最后一个元素 | 
示例代码
 1 public class MyLinkedListDemo4 {
 2     public static void main(String[] args) {
 3         LinkedList<String> list = new LinkedList<>();
 4         list.add("aaa");
 5         list.add("bbb");
 6         list.add("ccc");
 7 //        public void addFirst(E e) 在该列表开头插入指定的元素
 8         //method1(list);
 9 
10 //        public void addLast(E e)  将指定的元素追加到此列表的末尾
11         //method2(list);
12 
13 //        public E getFirst()       返回此列表中的第一个元素
14 //        public E getLast()        返回此列表中的最后一个元素
15         //method3(list);
16 
17 //        public E removeFirst()        从此列表中删除并返回第一个元素
18 //        public E removeLast()     从此列表中删除并返回最后一个元素
19         //method4(list);
20
21     }
22 
23     private static void method4(LinkedList<String> list) {
24         String first = list.removeFirst();
25         System.out.println(first);
26 
27         String last = list.removeLast();
28         System.out.println(last);
29 
30         System.out.println(list);
31     }
32 
33     private static void method3(LinkedList<String> list) {
34         String first = list.getFirst();
35         String last = list.getLast();
36         System.out.println(first);
37         System.out.println(last);
38     }
39 
40     private static void method2(LinkedList<String> list) {
41         list.addLast("www");
42         System.out.println(list);
43     }
44 
45     private static void method1(LinkedList<String> list) {
46         list.addFirst("qqq");
47         System.out.println(list);
48     }
49 }
50
51  
Java_集合之一的更多相关文章
- Java_集合面试题
		Java_集合面试题 0.链表,队列和栈的区别? 链表是一种存储结构,指得是存储时候除了要存储数据元素之外,还要用数据元素一起的另外空间存储数据元素的关系. 队列和栈都是线性表,属于逻辑结构范畴,都是 ... 
- JAVA_集合框架虐我千百遍,虐也是一种进步
		1.Collection和Collections区别: Collection是java的一个集合接口,集合类的顶级接口 Collections是一个包装类(工具类),不能被实例化(由于其构造函数设为私 ... 
- java_集合框架
		一.集合框架图 二.Collection接口 Collection中可以存储的元素间无序,可以重复的元素. Collection接口的子接口List和Set,Map不是Collecti ... 
- java_ 集合
		集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ... 
- Java_集合
		定义: 是一种工具,就像是容器,能存储任意数量的具有共同属性的对象. 与数组比较优点: (1)数组定义后长度不可变,集合长度可变: (2)数组只能通过下标访问,且下标类型只能是数字型,而有的集合(ma ... 
- Java_集合与泛型
		Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据.在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都是 ... 
- Java_集合总结
		集合分类 Collection 接口是集合的父类 1.Set 集合 使用内部的排列机制(无序),存入集合的顺序和取出集合的顺序不一致,没有索引,存入集合的元素没有重复 HashSet集合 Linked ... 
- 【Java_集合框架Set】HashSet、LinkedHashSet、TreeSet使用区别
		HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放: LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代: Tree ... 
- Java_集合之三
		1.红黑树 1.1概述[理解] 红黑树的特点 平衡二叉B树 每一个节点可以是红或者黑 红黑树不是高度平衡的,它的平衡是通过"自己的红黑规则"进行实现的 红黑树的红黑规则有哪些 每一 ... 
随机推荐
- OpenGL光照计算中法线矩阵原理及推到过程
			问题起源 在计算漫反射关照时,需要用到法线,通过法线和光线的点乘值,计算漫反射的产生的光线强度,所以需要从顶点着色器中将法线数据传递到片源着色器中,但是片源着色器中的顶点坐标是经过了模型矩阵变化过的世 ... 
- 从两个模型带你了解DAOS 分布式异步对象存储
			摘要:分布式异步对象存储 (DAOS) 是一个开源的对象存储系统,专为大规模分布式非易失性内存 (NVM, Non-Volatile Memory) 设计,利用了 SCM(Storage-Class ... 
- Androi Studio 之 LinearLayout
			LinearLayout •常用属性 •注意事项 当 android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用 a ... 
- Recoil 中多级数据联动及数据重置的合理做法
			前情回顾 书接上回,前面引出了在数据存在级联的情况下,各下拉框之间的默认值及值变化的处理.简单回顾一下: 场景是: 地域下拉决定可选的可用区 默认选中第一个地域,通过设置 atom 的 default ... 
- IDEA 配置文件位置
			1 IDEA 2020.1 以上 1.1 Win 语法: %APPDATA%\JetBrains\<product><version> Win上的APPDATA默认位置如下: ... 
- Salesforce学习之路(一)几个简单概念
			Salesforce是一款非常强大的CRM(Customer Relationship Management)系统,国外企业使用十分频繁,而国内目前仅有几家在使用(当然,国内外企使用的依旧较多),因此 ... 
- JAVAEE_Servlet_17_关于乱码问题
			关于乱码问题 * 数据传递过程中的乱码 解释:数据传递过程中的乱码是指: 将数据从浏览器发送给服务器的时候,服务器接收到的数据是乱码的. - ISO-8859-1 是国际标准码,不支持中文编码,它兼容 ... 
- 10- sudo,exit命令
			sudo命令: 作用:用超级用户权限来执行这些命令. 格式:sudo 命令 [选项] [参数] Linux root根目录文件夹 exit命令: 退出用户登陆 Linux关机 开机 重启命令: 
- SSDT表函数Hook原理
			其实 SSDT Hook 的原理是很简单的,我们可以知道在 SSDT 这个数组中呢,保存了系统服务的地址,比如对于 Ring0 下的 NtQuerySystemInformation 这个系统服务的地 ... 
- Linux中Nginx服务器的部署和配置
			目录 Nginx安装方式: yum源安装 目录结构: 源码包安装 目录结构: Nginx中支持PHP Nginx中配置php对mysql数据库的支持 Nginx配置反向代理服务器 正常代理 根据不同端 ... 
