java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

集合:集合是Java提供的一种容器,可以用来存储多个数据;

集合与数组的区别:集合的长度是可变的,数组的长度是固定的

         集合中存储的数据必须是引用类型数据;

ArrayList回顾:

public class Person {private String name;private int age;public Person() {super();}public Person(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}}
import java.util.ArrayList;public class Demo1 {public static void main(String[] args) {ArrayList<Integer> arr=new ArrayList<>();arr.add(1);arr.add(2);arr.add(3);arr.add(4);arr.add(5);for (int i = 0; i < arr.size(); i++) {System.out.println(arr.get(i));//1  2   3   4   5
        }ArrayList<Person> arr1=new ArrayList<>();arr1.add(new Person("张三", 18));arr1.add(new Person("李四", 18));arr1.add(new Person("王二", 18));for (int i = 0; i < arr1.size(); i++) {System.out.println(arr1.get(i));}/*Person [name=张三, age=18]Person [name=李四, age=18]Person [name=王二, age=18]*/System.out.println(arr1.size());//3arr1.clear();//清空集合System.out.println(arr1.size());//0
    }
}

collection接口是集合的根接口,研究它应该通过他的实现类

ArrayList集合实现了List接口,List接口继承了Collection接口,因此可以 通过ArrayList研究Collection的部分方法:

import java.util.ArrayList;
import java.util.Collection;public class Demo3 {public static void main(String[] args) {fun1();fun2();fun3();}private static void fun3() {// 删除元素Collection<String> c=new ArrayList<>();c.add("abc");c.add("def");c.add("ghi");boolean b=c.remove("abc");System.out.println(b);//true,看是否删除成功,如果元素不存在,则删除失败,如果有重复元素,则删除第一个System.out.println(c);//[def, ghi]
    }private static void fun2() {// 得到一个存储对象的数组Collection<String> c=new ArrayList<>();c.add("abc");c.add("defg");c.add("123");Object[] obj=c.toArray();for (int i = 0; i < obj.length; i++) {System.out.println(obj[i]);/*    abcdefg123*/}}private static void fun1() {//利用多态创建Collection类型变量Collection<String> c=new ArrayList<>();c.add("abc");//add()方法添加元素c.add("efg");boolean b=c.contains("abc");//contains方法,判断集合是否包含某元素,返回布尔类型System.out.println(b);//trueSystem.out.println(c.size());//2//size()方法:集合的大小,存入元素个数c.clear();//清空集合中元素,集合本身仍然存在,就像抽屉里的东西拿走了,抽屉仍然存在System.out.println(c.size());//0
    }
}

迭代器:java有很多的集合,存的方式是不一样的,我们要取出这些元素,可以通过一种通用的方式获得;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class Demo4 {public static void main(String[] args) {Collection c=new ArrayList<>();c.add("abc");c.add("jfhjkb");c.add(new Person("张三",18));//迭代器Iterator it=c.iterator();while (it.hasNext()) {Object  obj = (Object) it.next();System.out.println(obj);}}
}

增强性for循环:

格式:for(数据类型 变量名:数组或者集合){syso(变量名)}

还以上一个例子为例:

public class Demo4 {public static void main(String[] args) {Collection c=new ArrayList<>();c.add("abc");c.add("jfhjkb");c.add(new Person("张三",18));//增强性for循环for (Object object : c) {System.out.println(c);}
/*[abc, jfhjkb, Person [name=张三, age=18]]
[abc, jfhjkb, Person [name=张三, age=18]]
[abc, jfhjkb, Person [name=张三, age=18]]*/    }
}

 

转载于:https://www.cnblogs.com/Zs-book1/p/10567432.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

backtrader数据基础

cerebro bt.Cerebro() cerebro.addstrategy(TestStrategy2) codes[600862.SH,300326.SZ,300394.SZ] #加载最近两日交易数据 for code in codes:feed Addmoredata(dataname get_data(code,20200506),namecode)cerebro.adddata(feed) cerebro.run() 数据查看&#xff1a; cl…

谈判学:三招了解对方底线

导读&#xff1a;谈判者都希望能了解对方的底线&#xff0c;最直接的一招就是将对手变成“朋友”&#xff0c;只是这种“内奸法”毕竟不是常规之法。大多数情况下&#xff0c;谈判双方也不可能像《无间道》一样在对方阵营安放卧底&#xff0c;但是我们完全可以通过一些办法来揣…

JSLint检测Javascript语法规范

前端javascript代码编写中&#xff0c;有一个不错的工具叫JSLint&#xff0c;可以检查代码规范化&#xff0c;压缩JS&#xff0c;CSS等&#xff0c;但是他的语法规范检查个人觉得太“苛刻”了&#xff0c;会提示各种各样的问题修改建议&#xff0c;有时候提示的信息我们看的莫名…

Apt 命令解说(apt-get update、apt-cache search package、apt-get install package、apt-get remove )

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 高级打包工具&#xff08;英语&#xff1a;Advanced Packaging Tools&#xff0c;缩写为APT&#xff09;是Debian及其派生发行版的软件包…

SQL SERVER 2012 AlwaysOn - 维护篇 03

搭建 AlwaysOn 是件非常繁琐的工作&#xff0c;需要从两方面考虑&#xff0c;操作系统层面和数据库层面&#xff0c;AlwaysOn 非常依赖于操作系统&#xff0c;域控&#xff0c;群集&#xff0c;节点等概念&#xff1b; DBA 不但要熟悉数据库也要熟悉操作系统的一些概念&#xf…

指标研究与多周期

哪些地方会用到指标 &#xff1f; 回顾一下 Backtrader 的主要功能模块和回测流程&#xff08;见&#xff1a;Backtrader 来了&#xff01;&#xff09;可以发现&#xff0c;只有在编写策略Strategy 时才会涉及到指标的计算和使用&#xff0c;而且是 Strategy 中的 __init__()…

区块链BAAS平台:公共或私人区块链编程以用于各种用途

2019独角兽企业重金招聘Python工程师标准>>> 人们可以为公共或私人区块链编程以用于各种用途。理论上&#xff0c;我认为牺牲权力下放的方面可以解决区块链技术背后的许多当前问题。区块链仍然可以包容&#xff0c;而不是分散。这如何解决当前的一些问题&#xff1f…

CURL 是什么

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 cURL是一个利用URL语法在命令行下工作的文件传输工具&#xff0c;1997年首次发行。 它支持文件上传和下载&#xff0c;所以是综合传输工…

易用性问题回复

针对淘宝网为例&#xff0c;以一次完整的购物流程为背景&#xff0c;我们分析了在淘宝网中的一些易用性的体现&#xff0c;主要场景如下图所示: 在本场景中&#xff0c;新用户下载淘宝app时&#xff0c;第一次打开应用&#xff0c;淘宝app会出现新手指引&#xff0c;教会用户如…

易盛极星期货量化教学

我目前量化实盘做期货交易用的是这个软件。主要就是因为它可以做套利合约&#xff0c;还有就是国企的外包&#xff0c;安全&#xff08;vnpy的狗咬狗害怕&#xff09;。 策略模板&#xff1a; 设置全局参数变量&#xff1a; #导入包 import talib #选择合约代码 code1 #设…

eBay是如何进行大数据集元数据发现的

很多大数据系统每天都会收集数PB的数据。这类系统通常主要用于查询给定时间范围内的原始数据记录&#xff0c;并使用了多个数据过滤器。但是&#xff0c;要发现或识别存在于这些大型数据集中的唯一属性可能很困难。 在大型数据集上执行运行时聚合&#xff08;例如应用程序在特定…

职业发展 先“立功”还是先“安内”?

导读&#xff1a;职业生涯更上一层楼&#xff0c;章良踌躇满志&#xff0c;想在短期内建功立业&#xff0c;奠定江湖地位。但他清楚&#xff0c;自己运筹中的分公司服务升级计划&#xff0c;对公司整体和自己的职业生涯都非常有利&#xff0c;却将不可避免地转移老将掌握的部分…

网关 Kong 折腾笔记 - 相关技术清单

背景 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 公司准备更好的实现微服务架构&#xff0c;我前期的任务主要是 API 开发相关的技术学习&#xff0c;微服务会随着业务的增加不断增加…

Quantaxis更新数据到最新

登录QQ群&#xff1a;563280067 安装方法&#xff1a; 1.进入命令界面&#xff0c; 2.pip install pytdx-1.72r2-py3-none-any.whl 3. pip install quantaxis-1.10.19r1-py3-none-any.whl 之后输入save save all 即可看到所有的数据全部安装到位

Java各进制之间的转换

十进制转成十六进制&#xff1a; Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.valueOf("…

mingW与cygwin 异同

首先MingW和cygwin都可以用来跨平台开发。 MinGW是Minimalistic GNU for Windows的缩写&#xff0c;也就是Win版的GCC。 Cygwin则是全面模拟了Linux的接口&#xff0c;提供给运行在它上面的的程序使用&#xff0c;并提供了大量现成的软件&#xff0c;更像是一个平台。 相…

shell字符串的用法

shell字符串的用法 注意&#xff1a;shell4.2和shell4.1会有差别&#xff0c;较低版本的shell可能不支持某些功能 获取字符串长度&#xff1a;${#string}获取子串&#xff1a; 注&#xff1a;&#xff08;左边的第一个字符是用 0 表示&#xff0c;右边的第一个字符用 0-1 表示&…

backtrader期权回测框架

使用backtrader数据进行回测&#xff0c;数据源来自于交易所爬取。 效果还行&#xff0c;我相信各位通过这个的框架学习&#xff0c;会对backtrader的应用有更深的领悟。包括数据的连接&#xff0c;新指标的加入。 导入框架&#xff1a; __future__ import (absolute_import…

kong入门实战

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 安装kong-database docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USERkong" \-e "POSTGRES_DBkong&…

PAT A1048

示例思想中提到了二分以及two point概念&#xff0c;这个需要后面进行总结&#xff1b;这个示例也给出了一个新的思路。对于两个数字和m&#xff0c;查找两个加数&#xff0c;可以进行i和m-i的枚举&#xff0c;通过遍历数组查看两个加数是否存在&#xff0c;来进行遍历&#xf…