1、Collection常用方法

package com.example.collection.Collection;import java.util.ArrayList;
import java.util.List;public class Collection03 {public static void main(String[] args) {List list = new ArrayList();//接口可以指向实现该接口的类//add:添加单个元素list.add("lll");list.add(1);//有自动装箱的过程 list.add(new Integer(1));list.add(true);//有自动装箱的过程System.out.println(list);//list里的元素都是对象//remove:删除指定元素 【两种方式】list.remove("111");//指定删除某个元素list.remove(0);//按下标删除第一个元素//contains:查找元素是否存在System.out.println(list.contains("111"));//有返回true,无返回false//size:获取元素个数System.out.println(list.size());//isEmpty:判断是否为空System.out.println(list.isEmpty());//clear:清空list.clear();//addAll:添加多个元素ArrayList list1 = new ArrayList();list1.add("haha");list1.add("3213");list.addAll(list1);System.out.println(list);//containsAll:查找多个元素是否存在System.out.println(list.containsAll(list1));//都存在返回true//removeAll:删除多个元素list.removeAll(list1);}}

2、迭代器遍历

public class CollectionIterator {@SuppressWarnings({"all"})public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("三国演义", "罗贯中", 10.1));col.add(new Book("小李飞刀", "古龙", 5.1));col.add(new Book("红楼梦", "曹雪芹", 34.6));//System.out.println("col=" + col);//现在希望能够遍历 col集合//1. 先得到 col 对应的 迭代器Iterator iterator = col.iterator();//2. 使用while循环遍历
//        while (iterator.hasNext()) {//判断是否还有数据
//            //返回下一个元素,类型是Object
//            Object obj = iterator.next();
//            System.out.println("obj=" + obj);
//        }//一个快捷键,快速生成 while => itit//显示所有的快捷键的的快捷键 ctrl + jwhile (iterator.hasNext()) {Object obj = iterator.next();System.out.println("obj=" + obj);}//3. 当退出while循环后 , 这时iterator迭代器,指向最后的元素//   iterator.next();//NoSuchElementException//4. 如果希望再次遍历,需要重置我们的迭代器iterator = col.iterator();System.out.println("===第二次遍历===");while (iterator.hasNext()) {Object obj = iterator.next();System.out.println("obj=" + obj);}}
}class Book {private String name;private String author;private double price;public Book(String name, String author, double price) {this.name = name;this.author = author;this.price = price;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +'}';}
}

3、增强for遍历

增强for循环,可以代替iterator迭代器,特点:增强for就是简化本的iterator,本质一样。只能用于遍历集合或数组。

public class CollectionFor {@SuppressWarnings({"all"})public static void main(String[] args) {Collection col = new ArrayList();col.add(new Book("三国演义", "罗贯中", 10.1));col.add(new Book("小李飞刀", "古龙", 5.1));col.add(new Book("红楼梦", "曹雪芹", 34.6));//1. 使用增强for, 在Collection集合//2. 增强for, 底层仍然是迭代器//3. 增强for可以理解成就是简化版本的 迭代器遍历//4. 快捷键方式 I
//        for (Object book : col) {//            System.out.println("book=" + book);
//        }for (Object o : col) {System.out.println("book=" + o);}//增强for,也可以直接在数组使用
//        int[] nums = {1, 8, 10, 90};
//        for (int i : nums) {//            System.out.println("i=" + i);
//        }}
}

4、 List接口和常用方法

(1)List接口基本介绍

List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复;

public class List_ {@SuppressWarnings({"all"})public static void main(String[] args) {//1. List集合类中元素有序(即添加顺序和取出顺序一致)、且可重复 [案例]List list = new ArrayList();list.add("jack");list.add("tom");list.add("mary");list.add("hsp");list.add("tom");System.out.println("list=" + list);//2. List集合中的每个元素都有其对应的顺序索引(即一个整数型的序号记载//其在容器中的文字hi,可以根据序号存取容器中的元素),即支持索引。//   索引是从0开始的System.out.println(list.get(3));//hsp}
}

(2)List接口的常用方法

① void add(int index, Object ele):在index位置插入ele元素,没有index,默认在最后插入
② boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
③ Object get(int index):获取指定index位置的元素
④ int indexOf(Object obj):返回obj在集合中首次出现的位置
⑤ int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
⑥ Object remove(int index):移除指定index位置的元素,并返回此元素
⑦ Object set(int index, Object ele):设置指定index位置的元素为ele , 相当于是替换.
⑧ List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合,注意返回的子集合 fromIndex <= subList < toIndex

public class ListMethod {@SuppressWarnings({"all"})public static void main(String[] args) {List list = new ArrayList();list.add("张三丰");list.add("贾宝玉");
//        void add(int index, Object ele):在index位置插入ele元素//在index = 1的位置插入一个对象list.add(1, "韩顺平");System.out.println("list=" + list);
//        boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来List list2 = new ArrayList();list2.add("jack");list2.add("tom");list.addAll(1, list2);System.out.println("list=" + list);
//        Object get(int index):获取指定index位置的元素//说过
//        int indexOf(Object obj):返回obj在集合中首次出现的位置System.out.println(list.indexOf("tom"));//2
//        int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置list.add("韩顺平");System.out.println("list=" + list);System.out.println(list.lastIndexOf("韩顺平"));
//        Object remove(int index):移除指定index位置的元素,并返回此元素list.remove(0);System.out.println("list=" + list);
//        Object set(int index, Object ele):设置指定index位置的元素为ele , 相当于是替换.list.set(1, "玛丽");System.out.println("list=" + list);
//        List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合// 注意返回的子集合 fromIndex <= subList < toIndexList returnlist = list.subList(0, 2);System.out.println("returnlist=" + returnlist);}
}

(3)List的三种遍历方式

ArrayList, LinkedList,Vector三种遍历使用的方式一致。

public class ListFor {@SuppressWarnings({"all"})public static void main(String[] args) {//List 接口的实现子类 Vector LinkedList//List list = new ArrayList();//List list = new Vector();List list = new LinkedList();list.add("jack");list.add("tom");list.add("鱼香肉丝");list.add("北京烤鸭子");//遍历//1. 迭代器Iterator iterator = list.iterator();while (iterator.hasNext()) {Object obj =  iterator.next();System.out.println(obj);}System.out.println("=====增强for=====");//2. 增强forfor (Object o : list) {System.out.println("o=" + o);}System.out.println("=====普通for====");//3. 使用普通forfor (int i = 0; i < list.size(); i++) {System.out.println("对象=" + list.get(i));}}
}

(4)ArrayList 的注意事项

(1)permits all elements,including null,ArrayList可以加入null,并且可以有多个;

(2)ArrayList 是由数组来实现数据存储的;

(3)ArrayList 基本等同于Vector,除了ArrayList是线程不安全的(但执行效率高),在多线程情况下,不建议使用ArrayList。

(5)ArrayList 底层结构和源码分析

集合专题----List篇相关推荐

  1. 如何构建一个流量无损的在线应用架构 | 专题尾篇

    简介:我们将这些年在每一个环节中的相应解决方案,以产品化的方式沉淀到企业级分布式应用服务(EDAS)中.EDAS 致力于解决在线应用的全流程流量无损,经过 6 年的精细打磨,已经在流量接入与流量服务两 ...

  2. 《钢铁是怎样炼成的》读后感集合「15篇」

    做正确的事,再把事情做正确.读后感下面是原创文章网小编整理的<钢铁是怎样炼成的>读后感集合[15篇],欢迎大家阅读和收藏一下噢. <钢铁是怎样炼成的>读后感1 里面让我感受最深 ...

  3. JAVA集合专题+源码分析

    文章目录 Java集合专题 集合和数组的区别 数组 集合 区别 集合体系结构介绍 单列集合 [Collection ] Collection接口 迭代器 迭代器原理 增强for循环 List接口 对集 ...

  4. Java中的集合List - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合List - 入门篇>,希望对大家有帮助,谢谢 简介 说实话,Java中的集合有很多种,但是这里作为入门级别,先简单介绍第一种 ...

  5. Java集合专题(含源码)

    Java集合专题 一.集合是什么? 1.集合和数组的区别 2.Collection体系的继承树 2.1 Collection接口常用方法 2.2 Collection常用遍历方式 2.2.1 迭代器I ...

  6. web前端知识集合——javascript基础篇之javascript背景历史和运行环境(一)

    前言:温故而知新,可以为长也!万变不离其宗,无论是现在web前端技术衍生出多么优秀,好用的框架,插件,都离不开这门语言的基础知识.掌握各种优秀的框架,插件,只是"善用工具的人",深 ...

  7. web前端知识集合——javascript基础篇之常量和变量(二)

    3. 变量和常量: 1.1 变量的声明: js三种方式声明变量,声明不赋值时,默认值为underfined. (1)var声明:var name='Ace',同时声明多个变量var a=1,b=2,c ...

  8. 2023-JavaSE最新整理面试题-面向对象异常集合专题

    Java基础面试题 一.面向对象和集合专题 1. 面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可.性能较高,所以单片机.嵌入 ...

  9. iOS CoreAnimation专题——实战篇(四)基于拖动手势的视图3D旋转效果

    二维图像的显示 矩阵变换 基向量 线性变换 线性变换的复合 平移变换 齐次坐标 齐次坐标下的点和向量的区别 齐次坐标下的平移变换 齐次坐标下的平行线相交问题 CATransform3D 基于CATra ...

最新文章

  1. 马云:“996 是一种巨大的福气”
  2. NBT:噬菌体激发根际防御军团(附视频)
  3. 远方 vs How did I fall in love with you
  4. 常用MIME类型(Flv,Mp4的mime类型设置)(转载)
  5. paip.输入法编程----二级汉字2350个常用汉字2350个
  6. 基于大数据的消费者洞察
  7. Html鼠标右键菜单代码
  8. Kubernetes(K8s)学习笔记(一)
  9. def在python中什么意思_《python中的def是什么意思》
  10. 阿里云天池大数据:【入门】精灵宝可梦数据集分析
  11. 项目需求--将文件(html格式的字符串)转换为MultipartFile格式的文件然后转调第三方接口
  12. 网易企业邮箱在 手机上登陆 总显示密码或账号错误
  13. JS基础-一个完美的递归函数
  14. latex表格内容上下居中_表格内容垂直居中
  15. MOOC(幕课)的到来!
  16. mybatis-plus修改和批量修改
  17. 密码学-计算机与网络空间安全概论
  18. 相干解调与非相干解调
  19. 无线通信怎样把信号发射出去
  20. 存储芯片NAND FLASH的封装

热门文章

  1. MODIS Swath (GEOTIFF) 数据的拼接与均值运算-Python实现
  2. js平方计算器与猜数字游戏,计算从出生至今的天数
  3. 5个自媒体写作必备的免费工具,助你提高写作能力
  4. 哈达玛变换及其在图像/视频编码中的应用:计算SATD
  5. MPLS 虚拟专用网络 Hub and Spoke实验
  6. 博通第二季净利润37.33亿美元,同比增长700%
  7. 东南大学计算机学院课件 NPM、PYPI、DockerHub 备份
  8. 【HBase——陌陌海量存储案例】3. HBase表结构设计(下)
  9. HBase高级配置跟调整(1)
  10. 限制网页只能从移动手机端打开不能从电脑浏览器打开