-集合进阶-

Java集合进阶 Java中,集合框架(Collections Framework)是用于存储和操作一组对象的强大工具。它提供了多种接口和类,用于处理同类型的集合(如列表、集合、队列、映射等)。为了帮助你学习Java集合进阶知识,我将从以下几个方面进行讲解:Java集合框架主要包括以下接口和类:: 所有集合类的根接口。: 有序集合,允许重复元素(如 , )。: 无序集合允许重复元素(如 , )。: 队列,支持先进先出(FIFO)或优先级队列(如 )。: 键值对集合(如 , )。: 基于动态数组实现的列表。: 基于双 阅读详情

集合进阶

Collection

Collection集合概述

● 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
● JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Se和List) 实现

创建Collection集合的对象

● 多态的方式
● 具体的实现类ArrayList

// 创建Collection集合对象
Collection<String> c = new ArrayList<String>();

Collection集合常用方法
方法名说明使用返回值
boolean add(E e)添加元素c.add()true
boolean remove(Object o)从集合中移除指定的元素c.remove()true/false
void clear()清空集合中的元素c.clear()
boolean contains(Object o)判断集合中是否存在指定元素c.contains()true/false
boolean isEmpty()判断集合是否为空c.isEmpty()true/false
int size()集合的长度,也就是集合中元素的个数c.size()数值
Collection集合的遍历

Iterator: 迭代器,集合的专用遍历方式
Iterator iterator() :返回此集合中元素的迭代器,通过集合的iterator()方法得到
● 迭代器是通过集合的
iterator() 方法得到的, 所以我们说它是依赖于集合而存在的
Iterator中的常用方法
E next():返回迭代中的下一个元素
boolean hasNext()
:如果迭代具有更多元素,则返回true

Collection<String> c = new ArrayList<String>();
Iterator<String> it = c.iterator();
while(it.hasNext()){
  String s = it.next();
  System.out.println(s);
}

List

List集合概述和特点

List集合概述
● 有序集合(也称为序列), 用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
● 与Set集合不同,列表通常允许重复的元素
List集合特点
有序: 存储和取出的元素顺序-致
可重复: 存储的元素可以重复

List集合特有方法
方法名说明
void add(int index,E element)在此集合中的指定位置插入指定元素
E remove(int index)删除指定索引处的元素,返回被删除的元素
E set(int index,E element)修改指定索引处的元素,返回被修改的元素
E get(int index)返回指定索引处的元素
并发修改异常

原因:迭代器遍历过程中通过集合加元素,造成迭代器获取元素时,判断预期修改值和实际修改值不一致的情况,从而抛出异常ConcurrentModificationException/checkForComodification

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListDemo {
  public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    list.add("hello0");
    list.add("hello1");
    list.add("hello2");
    Iterator<String> it = list.iterator();
//    while(it.hasNext()){
//      String s = it.next();
//      if(s.equals("hello0")) {
//        list.add("hello4");
//      }
//      System.out.println(s);
//    }
    for(int i = 0;i<list.size();i++) {
      String s = list.get(i);
      if(s.equals("hello0")) {
        list.add("hello4");
      }
      System.out.println(s);
    }
    
  }
}

解决方法:用for循环代替迭代器

ListIterator

Listlterator列表迭代器

● 通过List集合的listIterator()方法得到, 所以说它是List集合特有的迭代器
● 用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取列表中迭代器的当前位置

Listlterator中的常用方法

● E next():返回迭代中的下一个元愫
● boolean hasNext():如果迭代具有更多元素,则返回true
● E previous():返回列表中的上一个元素
● boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
void add(E e):将指定的元素插入列表

List<String> list = new ArrayList<String>();
ListIterator<String> lit = list.listIterator();
while(lit.hasNext()){
  String s = lit.next();
  if(s.equals("world")){
    lit.add("javaee");
  }
}

增强for循环

增强for:简化数组和Collection集合的遍历

● 实现Iterable接口的类允许其对象成为增强型 for语句的目标
● 它是JDK5之后出现的, 其内部原理是一个Iterator迭代器

增强for的格式 范例

int[] arr = {1,2,3,4,5};
for(int i : arr){
  System.out.println(i);
}
总结:

如何选择

增强for:最方便的遍历方式

普通for:带有索引的遍历方式

迭代器:集合特有的遍历方式

adams案例分析_案例1(麦弗逊悬架子系统创建) 本文字数3292字83图,建议阅读时间26分钟首先看下案例1的麦弗逊悬架数模结构就细讲了,从数模上主要是获取硬点坐标(铰接点、安装点、参考点)及大部件结构(副车架、摆臂、转向节等实际运动过程中会产生变形的部件,在ADAMS Car中我们就可以用柔性体来搭建)再来回顾下上一篇讲到的模型元素1、Hardpoint——硬点(只有位置没有方向)2、Parameter Variable——参数... 阅读详情

相关推荐

芯片设计|SoC芯片设计流程 与 软硬件协同设计

SoC通常被称作系统级芯片或者片上系统,作为一个完整的系统,**其包含了硬件和软件两部分内容**。这里所说的硬件指SoC芯片部分,**软件是指运行在SoC芯片上的系统及应用程序**。既然它是由软件和硬件组合而成,则在进行系统设计时,**就必须同时从软件和硬件的角度去考虑。**

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1778

集合进阶

​ 在这之前,我们已经学过了ArrayList集合,但这个集合只是Java集合的冰山一角而已,在正式学习集合之前我们先来了解一下集合的体系结构。​ 集合总的可以分为两大类:单列集合和双列集合。简单的解释一下,单列集合就是一次只能添加一个数据,二双列集合一次能添加两个数据。​ 我们先来学习一下单列集合:要想要学好单列集合,就应当明确List集合与Set机和各自的特点.​ 对于List系列集合,它的特点是:添加的元素是有序的(指的是存和取的顺序是一样的),可重复,有索引。​ 而对于Set系列集合,他

m0_74135040的博客 1059

长虹智能电视强制刷机升级固件升级软件-ZLS47HiS-V1.00042-FPV1.00-PQ032-AQ1.03

适用机型:UD39B6000iD、UD42B6000iD、UD42C6080iD、UD50B6000iD、UD55B6000iD、UD55C6080iD、UD42C6000iD、UD49C6000iD、UD49C6080iD、UD55C6000iD、UD58C3000iD系列1、将文件下载到电脑,解压后有2个文件,2个文件放到U盘的根目录。U盘必须使用FAT32格式;2、将U盘接入电视的 USB接口;3、将电视关机,交流断电(拔掉电源),然后通电开机,会显示“系统正在升级请要断电”的提示;4、等待电视升级完成,升级完毕电视会自动重启;5、电视机重启完毕,桌面显示出来,遥控器可操作后,拔掉U盘。

Java进阶总结——集合

说明对于以上的框架图有如下几点说明1.所有集合类都位于java.util包下。Java集合类主要由两个接口派生而出Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。集合接口6个接口(短虚线表示),表示集合类型,是集合框架的基础。抽象类5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。实现类8个实现类(实线表示),对接口的具体实现。Collection接口是一组允许重复的对象。...

Marathon_X的博客 204

Java进阶two 集合进阶与Stream流

Java进阶课程的第一篇,集合进阶与Stream流相关内容。学习完基础之后就是进阶的内容了。

weixin_74735725的博客 428

Java_集合进阶Set集合

最后,将所有的Collection集合总结一下,要求大家掌握每一种集合的特点,以及他们的体系结构。

qq_48083892的博客 1276

Java集合进阶

在方法的形参中最多只能写一个可变参数,在方法的形参当中,如果出了可变参数以外,还有其他形参,那么可变参数要写在最后。在Set集合中add方法返回值确定,可重复为true,重复为false,重复性。创建JavaBean类,Student对象,属性值name,age。在List集合中add方法永远返回值为true,可重复性。如果当前元素是第一次添加,那么可以添加成功,返回true。如果当前元素是第二次添加,那么添加失败,返回false。集合分为单列集合和双列集合两大类。删除remove元素的两个细节。

yuey2003的博客 583

集合进阶(Collection 单列集合

(去重)

2301_80954543的博客 1608

Java集合进阶

计算机存储和组织数据的方式。是指数据相互之间是以什么方式排列在一起的。数据结构是为了更加方便的管理和使用数据。

lidongi的博客 748

集合进阶

问题 1:“Java 集合的快速失败(fail-fast)和安全失败(fail-safe)的差别是什么?” 快速失败和安全失败都是 java 集合(Collection)的一种错误机制。单线程情况下,遍历集合时去执行增删等改变集合结构的操作;或者多线程情况下,一个线程遍历集合,另一个线程执行增删等改变集合结构的操作。 快速失败,是指失败 / 异常时立即报错,通常会抛出 ConcurrentModificationException 异常,像 java.util 包下面的集合类就是使用这种机制; 安全失败.

weixin_44962371的博客 366

java集合进阶-《Collection集合

java中的集合也是一个重点,同样也是难点,涉及到的东西较多较杂,希望大家能够和我一起来学习java集合进阶方面的知识。预计一周的时间将java集合进阶部分拿下,加油。在Java中,是一个接口,它是所有Java集合框架的根。它定义了集合类必须实现的基本操作,如添加元素、删除元素、迭代等。所有的集合类(如ListSetQueue等)都是Collection接口的直接或间接实现。

欢迎大家一起讨论交流 1044

集合进阶(异常、集合

如果自己的某种问题,想通过异常来表示,那就需要自己来定义异常类了。我们通过一个实际场景,来给大家演示自定义异常。需求:写一个saveAge(int age)方法,在方法中对参数age进行判断,如果age<0或者>=150就认为年龄合法,如果年龄合法,就给调用者抛出一个年龄非法异常。分析:Java的API中是没有年龄非常这个异常的,所以我们可以自定义一个异常类,用来表示年龄非法异常,然后再方法中抛出自定义异常即可。

tokisaki_33的博客 964

Java基础篇——集合进阶(一)

集合Java基础中的重要内容。我将分享我个人的学习笔记,或许可以帮助大家对集合这部分内容有初步的认知和理解。

cy的Java学习笔记 1507

Java进阶_1集合框架

Java进阶_1 一、集合框架概念 集合对象的容器,定义了多个对象进行操作的常用方法,类似数组的功能。 和数组的区别 (1)数组长度固定,集合长度固定 (2)数组可以存储基本类型和引用类型,集合只能存储引用类型 位置:java.util.*; 图1-集合框架图 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: **接口:**是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以同的方式操作集合

Nicole_1_2_3的博客 271

JavaSE 集合进阶

添加链接描述

weixin_52358529的博客 133

集合-进阶

泛型具备继承性此时,泛型里面写的是什么类型,那么只能传递什么类型的的数据弊端:利用泛型方法有一个小弊端,此时他可以接受任意的数据线类型希望:本方法虽然确定类型,但是以后我希望只能传递 Ye Fu Zi此时我们就可以使用泛型的通配符:?也表示确定的类型他可以进行类型的限定?extendsE:表示可以传递E或者E所有的子类类型?superE:表示可以传递E或者E所有的父类类型。

kyy_studydiary的博客 787

集合框架Set进阶

本文深入剖析了Java中HashSet、LinkedHashSet和TreeSet三大Set实现类的底层原理与使用场景。HashSet基于HashMap实现去重,依赖hashCode()和equals()方法;LinkedHashSet通过LinkedHashMap维护插入顺序;TreeSet则借助TreeMap实现元素排序。针对并发场景,文章分析了CopyOnWriteArraySet的写时复制机制及其适用场景。

weixin_64178283的博客 1878

Java——集合进阶

本文系统介绍了Java集合框架的核心内容,主要包括:1. 集合与数组的对比,集合具有可变长度、只能存储引用类型等特点;2. Collection集合的常用操作方法(add/remove/contains等)及三种遍历方式(迭代器、增强for、普通for);3. List集合(有序可重复)的特有方法和两种实现类ArrayList(数组结构)与LinkedList(链表结构);4. Set集合(无序可重复)及HashSet/TreeSet实现类;5. 泛型的使用方法和类型通配符;6. 树结构(二叉树、二叉查找

2401_88065518的博客 1432

day16--集合进阶(Set、Map集合

最后,将所有的Collection集合总结一下,要求大家掌握每一种集合的特点,以及他们的体系结构。好了,关于Collection集合,到这里就学习完了。各位同学,前面我们已经把单列集合学习完了,接下来我们要学习的是双列集合。首先我们还是先认识一下什么是双列集合。所谓双列集合,就是说集合中的元素是一对一对的。Map集合中的每一个元素是以key=value的形式存在的,一个key=value就称之为一个键值对,而且在Java中有一个类叫Entry类,Entry的对象用来表示键值对对象

ZHUSHANGLIN的博客 1067
上一篇: 本周总结 =^ ^=
舒克啊
博客等级 码龄7年 37粉丝 65原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值