OC第五课

Java硬核程序设计实验“集合与泛型”详解 ❥作为上学年“Java硬核程序设计实验详解”系列补充❥ 目录 ❀1.题目:编写程序练习泛型和List集合的基本使用 ❀2. 题目:编写程序练习泛型和Map集合的基本使用 ❀3. 题目:按照教材[案例7-8]的思路,在其基础上设计一个图书购物车 ❀4.题目:在Eclipse 下完成如下实践项目 (选做题) :star:️4. 架构&源代码: :sunny:|一、实验目的 1.理解集合的概念、体系结构、分类及使用场景 2.掌握Set接口及主要实现类 3.掌握Li... 阅读详情

主要内容:字典、集合、数组排序

一、字典

       示例:

               name : @" 张三 " ;sex:@" 男 " ; age :@" 21 " ;

               思考:怎么用字典保存?

       字典:用于保存具有映射关系(key - value对)数据的集合,对于张三来说,key就是name,男来说,sex就是key

       一个key - value对认为是一个条目,字典是存储key - value对的容器

       与数组不同,字典靠key存取元素,key不能重复,value必须是对象(value可以重复),键值对在字典中的存储是无序的

       字典同样分为可变字典(NSMutableDictionary)、不可变字典(NSDictionary)

       不可变字典(NSDictionary):

       不可变字典一旦创建,键值对就不可更改、不可添加、不可删除,只能读取key或者value

       创建字典对象(三种方法):

                     便利构造器:NSDictionary  *dict1 = [ [ NSDictionary  dictionaryWithObjects : @[@"af", @"afaf", @"adada"]  forkeys : @[ @"first", @"second" , @"three"] ] ;

                     初始化方法:NSDictionary  *dict2 = [ [ NSDictionary  alloc] initWithObjectsAndKeys : @"first" , @"afdaf" , 

                                                                                                                                                @"second" , @"afadx" ] ;

                      字面量:NSDictionary  *dict3 = @{@"first" : @"aex",

                                                                             @"second" : @"af", } ;

       常用方法:

              1、获取所有的key值

                           [ dict1 allKeys ] ;

              2、获取所有的value值

                           [ dict1  allValues ] ;

              3、通过key值查询value

                           [ dict1  ObjectForKey : @"first" ] ;

       可变字典(NSMutableDictionary):

              不可变字典(NSDictionary)的子类

              可以进行增删改查的操作

      常用方法:

              1、添加键值对

                           [ dict2  addEntriesFromDictionary : @{@"other" : @"afa" } ] ; / / 作用是将一个字典中的键值对放入另一个字典中

                           [ dict2  setObject : @"other"  forKey : @"axea" ] ;

              2、修改key对应的值

                           [ dict2  setObject : @"afas"  forKey : @"first" ] ;

              3、删除键值对

                          [ dict2 removeObjectForKey : @"first" ] ;

                          [ dict2  removeAllObject ] ; / / 删除全部键值对

              4、通过for循环遍历所有的键值对

                           for ( NSDictionary  *obj  int  dict3 ) {   / / 快速遍历方法

                                   NSLog ( @" %@ " , obj) ; / / 快速遍历对字典来说,默认打印key值

                           }

二、集合

       与数学中的集合一样,集合中的元素 “ 唯一 ”

       元素是无序的,并且元素必须是对象,同样分为NSSet(不可变集合)、NSMutableSet(可变集合)

       如果想从集合中取出元素,只能随机取出一个

       NSSet(不可变集合):

                创建集合:NSSet  *sets = [ NSSet  setWithObjects : @"b" , @"c" , @"a", @"d", nil ] ;

       常用方法:

              1、获取元素个数    count

                              [ sets  count ] ;

              2、获取集合中的一个元素       anyObject

                             [ sets  anyObject ] ;

              3、判断集合中是否包含某个元素       containObject

                             [ sets  containsObject ] ;

三、集合类型的快速枚举

       for ( <#type  *object#> in <#collection#>){

       }

       object是遍历得到的元素对象

       collection是集合类型的对象:数组、字典、集合

       特点:

               数组枚举得到数组中的元素对象、

               字典枚举得到字典中的key值、

               集合枚举得到集合中的元素对象

四、数组排序

       原来学的冒泡排序

              示例:

                       int  array[10] = { 2, 5, 4, 7, 6, 3} ;

                       for (int i = 0; i < 6 - 1 ; i++){

                                 for(int j = 0; j < 6 - 1 - i ; j++){

                                             int temp = array[ j ] ;

                                             array[ j ] = array[ j + 1 ] ;

                                             array[ j + 1 ] = temp ;

                                 }

                       }

                      for(int i = 0 ; i < 6 ; i++){

                                  printf("%d" , a[ i ]) ;

                      }

      数组排序:

                    for (int i = 0; i < 6 - 1 ; i++){

                                 for( 判断条件 ){

                                            [array  exchangeObjectAtIndex : j WithObjectAtIndex : j + 1 ] ;

                                 }

                    }

                    数组排序取决与判断条件,判断条件决定了排序方式(升序、降序)
iOS LiveCommunicationKit OC 实现 LiveCommunicationKit主要用于优化VoIP通话体验,适用于需要高质量语音通话功能的应用。类似的功能,允许应用程序设置为系统默认通话应用,但与CallKit不同的是,LiveCommunicationKit在锁屏状态下不会全屏弹出,也不会在。因为项目是OC版本的,所以进行了封装实现,目前已经实现OC版本,供大家使用。8.0.56版本就采用了LiveCommunicationKit接口,替换了原先的CallKit框架,以进一步提升语音通话体验‌。中引入的一个新框架,旨在优化。 阅读详情

相关推荐

OC—基础语法

一、Objective-C语言简介 Objective-C简称Obj-C或者OC,Objective的意思就是面向对象的。OC其实就是在C语言的基础之上,封装了一层面向对象的语法,他并不是一门全新的编程语言。OC是Mac OS X系统和iOS系统的主要开发编程语言,当然马上要被Swift给替代了,然并卵,我们还是得好好学习OC,因为现在大多数公司还是使用OC来做iOS开发。 二、第一个OC程序...

标题 1492

java--ArrayList泛型:使用ArrayList泛型添加5个学生对象, 然后遍历打印5位学生的自我介绍方法。

import java.util.ArrayList; import java.util.List; /** * 使用ArrayList泛型添加5个学生对象,然后遍历打印5位学生的自我介绍方法。 * (需创建学生类)Student.java包含 name,age,gender属性,printer()介绍方法 * @author Administrator * */ public cla...

有点儿文绉绉的小赖的博客 1万+

iOS UMeng OC和Swift混编

设置Objective-C桥接文件导入SDK头文件在UMengDemo-Bridging-Header.h中加入U-Share SDK头文件://导入UMCommon的OC的头文件//导入UShare的OC的头文件//导入UMAnalytics的OC的头文件//导入UMPush的OC的头文件UMengDemo的OC和Swift的切换UMengDemo是用OC的代码编写的,同时也兼容了swift3.0的调用示例(UMengDemo不再对swift2.0做示例兼容).

2501_90230875的博客 1701

List与set集合,Map集合的区别以及它们的实现类有哪些?

List 是可重复集合,Set 是不可重复集合,这两个接口都实现了 Collection 父接口。 Map 未继承 Collection,而是独立的接口,Map 是一种把键对象和值对象进行映射的集合,它的每一个元素都包含了一对键对象和值对象,Map 中存储的数据是没有顺序的, 其 key 是不能重复的,它的值是可以有重复的。 List 的实现类有 ArrayList,Vector 和 Link...

休憩小屋 3423

oc调用swift

OC调用Swift 如果你想在Objective-C工程中,嵌入Swift文件,实现OC调用Swift,那么这篇文章就能帮助你,由于本人最近在开发Swift项目,所以实现过OC调用Swift,在这过程中遇到过一些瓶颈,特此,将此文奉上,供大家参考。 OC调用Swift文件,需要创建桥接头文件,这个文件是当你在OC开发环境中创建Swift文件时由Xcode生成,该桥接头文件的命名是:-B

Xiao_Long_Li的专栏 2136

Dual-stream multiple instance learning networks for tumor detection in Whole Slide Image——论文笔记

关于多示例学习的资料网上比较少,但是在医学图像方面还是有人在应用的。主要是因为一般比较大,几个G都是十分常见的,这么大图片是无法直接训练,一般都会进行切图,所以天然契合多示例学习bag和instance的概念。最近看了一篇论文刚好关于这方面的,所以做下笔记。 github地址:https://github.com/binli123/dsmil-wsi paper:https://arxiv.org/abs/2011.08939 背景知识 在多示例学习(MIL)中,一组训练样本被视为包含多个instance的

weixin_41693877的博客 4170

需求:定义一个集合,添加一些学生对象,并进行遍历学生类的属性为:姓名,年龄。

定义一个集合,添加一些学生对象,并进行遍历学生类的属性为:姓名,年龄。

luliufei的博客 1044

DrissionPage无头模式破盾记:实战绕过CloudFlare 5秒验证

本文详细介绍了如何使用DrissionPage无头模式绕过CloudFlare 5秒盾验证,提升爬虫效率。通过关键参数配置、服务器环境问题处理及高级绕过技巧,如动态UA轮换和鼠标移动模拟,帮助开发者有效应对反爬机制。实战案例展示了如何结合最新Chrome UA和参数设置实现稳定数据采集。

weixin_29327525的博客 487

1.a.txt 文本里面写有如下内容: age=25:name=张三 age=26:name=李四 。。。。 已知:age和name,是Person类的两个成员变量,请把这个文本里面的

package com.heima.test;import java.awt.List; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList;publi

嘿啦啦与呼哈哈的童话 2830

避开SM30维护视图的坑:自动更新字段+日志记录的5个关键配置步骤

本文深入解析了SAP ABAP开发中SM30维护视图的深度定制,聚焦于实现自动更新字段与日志记录功能。文章详细阐述了从SE54配置起点到核心编码的5个关键步骤,重点讲解了如何利用事件驱动模型(如05创建事件和01保存前事件)安全操作动态数据结构,并提供了避免常见陷阱的实用技巧,帮助开发者构建稳定可靠的自动化维护机制。

plant的博客 622

基于STM32F407与AD9910/AD9959的高频可调DDS信号源设计与实战

本文详细介绍了基于STM32F407微控制器与AD9910/AD9959高性能DDS芯片的高频可调信号源设计与实现。文章从DDS原理入手,阐述了双芯片方案的优势,并重点分享了高频电路设计中的电源、PCB布局布线等关键硬件设计技巧与避坑指南。同时,提供了通过SPI配置DDS芯片及利用Matlab生成任意波形的软件驱动方法,旨在帮助开发者打造一个覆盖10Hz至4200MHz的实用信号发生器。

weixin_36184718的博客 120

OC第五课(@class与#import)property参数使用

如果是继承某个类,就要导入类的头文件 如果只是定义成员变量、属性,@class 通常引入一个类的方法有两种:#import  包含引用类的所有信息,包括被引入类的变量和方法;头文件@class只是告诉我们编译器,这个只是一个类. 等到真正要用的类的方法和变量,就用import. 不仅仅知道他是一个类,同时也要使用他的方法 import的文件修改,导入头文件的,全部重新编译。

947

【读代码】TradingAgents:基于多智能体LLM的金融交易框架深度解析

TradingAgents是由Tauric Research团队开源的创新型金融交易框架,其核心思想是通过多智能体协作系统模拟专业交易机构的决策流程。项目采用模块化设计,整合了LLM、实时数据分析、风险控制等组件,实现了从市场分析到交易执行的完整闭环。

kakaZhui的博客 2003

Open Catalyst Project数据集全解析:OC20/OC22/OC25有何不同

你是否在催化剂研究中遇到过数据集选择困难?面对OC20、OC22和OC25等多个版本,不知道它们之间的区别和适用场景?本文将详细解析这三个数据集的核心差异、技术特点和应用场景,帮助你快速选择适合自己研究需求的催化剂机器学习数据集。读完本文后,你将能够:区分不同数据集的结构特征、了解它们的技术参数差异、掌握各自的适用场景,并学会如何获取和使用这些数据集。 ## 数据集概述与核心差异 Open C...

gitblog_00055的博客 1626

基于高德地图的单车路径规划与绘制实战(Vue3 + TypeScript)【拓展:货车路径规划函数、限行检测、城市 Adcode】

✅ 支持单辆车路径规划✅ 自动绘制路线✅ 起点、终点、途经点标注✅ 自动缩放视野至全路径✅ 获取路线距离、时长、过路费✅ 提供清除功能✅ 路线信息保存至本文完整实现了一个基于高德地图 JS SDK + Vue3 + TypeScript的👉单车路径规划与绘制模块。核心亮点:清晰的结构;灵活的扩展性;实时路线信息记录(🚀 你可以很方便地将本模块集成到车联网、调度监控、地图展示类项目中。❤️ 如果这篇文章对你有帮助,别忘了:评论区交流 💬。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 1264

爬虫逆向:Hook 技术原理与实战

Hook 技术​(钩子技术)是一种通过拦截和修改程序执行流程的技术手段。它允许开发者在目标程序的特定位置插入自定义代码,以改变程序的默认行为或获取运行时信息。Hook 技术广泛应用于调试、逆向工程、性能分析、安全防护等领域。Hook 技术在爬虫逆向中非常有用,能够有效获取和修改目标程序的数据。通过合理使用 Hook 工具和技术,可以显著提升爬虫的效率和成功率。但使用时需注意法律和道德问题,确保行为合规。

数据知道的博客 1万+

15、OC与Swift的混编

在使用Swift进行iOS开发的过程中,经常涉及到Swift与OC混编的情况,有时主工程是OC的需要另外编入Swift代码,而有时主工程是Swift的需要另外编入OC代码。这其中涉及到修改一下XCode的工程配置。 1、在同一个工程中的混编 在Swift 5.1中,两种混编的实现步骤: Swift访问OC:只需要在桥接文件(ProductName-Bridging-Header.h)中导入需要暴露给Swift的OC类,即可在Swift中访问相应OC类及方法。 OC访问Swift:在OC类中导入Pro

重楼的博客 3583

YOLOv8融合可变形注意力(DAT)实战教程:暴力涨点的科研级注意力机制优化方案

DAT的“可变形注意力”为目标检测的“精准特征捕捉”提供了全新思路,而YOLOv8的工程化优势让这种科研创新能快速落地到工业场景。希望这篇教程能帮你在“注意力机制优化+复杂场景检测”的痛点上找到突破口。如果你在实操中遇到“涨点不明显”的问题,不妨回到“DAT的采样点是否贴合目标形状”“注意力权重是否有效过滤背景”这些细节上找原因——科研的价值,就在于在细节打磨中推动技术进步。祝你在DAT与YOLOv8的结合探索中,既能做出有说服力的实验成果,又能沉淀出解决异形目标检测难题的实用经验。

know_F0727的博客 83

[科普] GLONASS现代化:新民用CDMA信号L1OC、L2OC与L3OC详解

俄罗斯GLONASS系统正通过引入新一代民用CDMA信号实现现代化升级。目前已部署L3OC信号(1202.025 MHz),采用BPSK(10)调制和I/Q正交复用结构,提供宽带宽和高精度;部分卫星已测试播发L2OC信号(1248.060 MHz),形成双频优势;计划中的L1OC信号(1600.995 MHz)将采用BOC(1,1)调制。这些新信号显著提升了系统性能,改善了与其他GNSS系统的兼容性,为高精度应用提供支持。随着GLONASS-K2等新一代卫星的发射,系统将实现从FDMA到CDMA的全面转型。

极客不孤独的博客 1611

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OC 基础入门

OC 语法基础 OC 的语法知识其实有蛮多,以下知识基础的一部分. 目录部分: 文章目录 @ 符号 在 OC 语言中,绝大部分的关键字使用的@符号开头。记住这是一个规则就好了。 字符串 在 Java 中字符串和 C 语言中字符串定义的方式是一样的。 但是在 OC 中的字符串的定义是需要添加 @ 的,在OC 中字符串类型使用的是 NSString ,相对而言添加一个 NS 前缀。 Java: "Android" "Java" OC: @"OC" @"iOS" //比如定...

秋天的博客 2807

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OC和Swift混编相互调用

现在咱们就一起学习下 OC和Swift混编,如何实现呢? 首先创建一个OC项目 这里不在做详细解释,直接进入 打开项目; 一 、添加swift 文件 (只要是混编 无论是在oc项目中添加swift文件 ,还是swift项目中添加oc文件) 会提示添加一个桥文件 名字为oc_swift-Bridging-Header.h下面都用这个名字(如图) 这个时候 我们只需要点击确定即可; 这个桥文件是用来添加 swift使用oc的时候导入头文件使用的 扩充 — 这个文件oc_swift-Bridging-Head

哈皮吖的博客 5468

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

iOS JS与OC交互

iOS JS与OC交互 1、UIWebView 与 JS 交互 UIWebView 在 iOS12 中已经被废弃,同时WKWebView在iOS8中已经出现。所以无特殊情况的话,我们一般应该也是用不到前者了! UIWebView 初始化: self.webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; self.webView.delegate = self; [self.view addSubview:self.

kangpp的博客 2978

IOS 07 Swift调用OC源码及OC第三方框架

创建SwiftUseOCTest项目,是一个Swift语言的项目;再创建一个OC类文件,里面有静态方法,实例方法,字段等;然后在Swift项目中调用OC类;像OC类的复杂宏,在Swift类中是无法调用。

sziitjin的博客 1831

oc怎么添加win引导_OC透明贴图

写在前面透明贴图在C4D中经常会用到,比如在物体上贴个图形,如下图所示,这个在默认渲染器中操作比较简单,切换到OC中,有的小伙伴会有些懵圈,所以写了这篇文章(使用OC3.07),希望对大家有所帮助,笔芯。OC中实现透明贴图,涉及到图像纹理节点,下面先梳理相关的知识。OC节点编辑器OC中一个个节点可以看成一个个暗盒,它有两类端口,左侧输入端:输入指令,右侧输出端:输出结果,输入端可有多...

weixin_39834488的博客 2820
上一篇: OC第四课
下一篇: OC第六课
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值