集合:集合是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;
}
@Override
public 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());//
arr1.clear();//清空集合
System.out.println(arr1.size());//
}
}

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]);
/* abc
defg
123*/
} } 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);//true
System.out.println(c.size());////size()方法:集合的大小,存入元素个数
c.clear();//清空集合中元素,集合本身仍然存在,就像抽屉里的东西拿走了,抽屉仍然存在
System.out.println(c.size());//
}
}

迭代器: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]]*/
}
}

java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)的更多相关文章

  1. Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)

    集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...

  2. Java学习笔记16---抽象类与接口的浅显理解

    抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...

  3. 5.2类集(java学习笔记)Map,Set接口

    一.Map接口 Map接口中存储数据是通过key->value的方式成对存储的,可以通过key找到value. 二.Map接口常用子类 1.HashMap HashMap是无序存放的,key不允 ...

  4. Java学习笔记之ArrayList基本用法

    原文地址,转载请注明出处:https://blog.csdn.net/GongchuangSu/article/details/51514389 ArrayList简介 ArrayList是一个其容量 ...

  5. Java学习笔记20(String类应用、StringBuffer类、StringBuilder类)

    1.获取指定字符串中大小写和数字的个数: package demo; public class StringTest { public static void main(String[] args) ...

  6. java学习笔记(基础篇)—抽象与接口的区别

    抽象与接口的区别 一.抽象(abstract) 1. 抽象方法 1) 作用:定义规范 2) 抽象方法用来描述具有什么功能,但不提供实现. 3) 如果类中一个方法没有实现就要定义一个抽象方法. 2. 抽 ...

  7. Java学习笔记18---final关键字修饰变量、方法及类

    英语里final这个单词大家都知道是"最终的"意思,其实还有一个意思是"不可更改的".在Java里,final关键字作"不可更改的"来解释更 ...

  8. Java学习笔记五--String(二)String其他方法

    第一节课 // 清除单位字符串开始和结尾空白的副本 String.trim(); 字符串每次更改都会创建新的对象,而不会覆盖原来的字符串,每次拼接都会产生新的String对象,耗时耗内存. java. ...

  9. Java学习笔记(6)---正则表达式,方法

    1.正则表达式: a.定义: 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. 在Java,一个字符串其实就是一 ...

随机推荐

  1. python记录_day17 类与类之间的关系

    一.依赖关系 a类的对象是b类方法的参数 这种关系是我用着你,但你不属于我,比如公司和临时工的关系,是很弱的一种关系 class Zhiwu: def __init__(self,name,atk): ...

  2. 廖雪峰网站:学习python函数—递归函数(四)

    # 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数 # 计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: # fact ...

  3. 『MXNet』im2rec脚本使用以及数据读取

    一.im2rec用法简介 首先看文档: usage: im2rec.py [-h] [--list] [--exts EXTS [EXTS ...]] [--chunks CHUNKS] [--tra ...

  4. suse11安装mysql5.7

    下载地址http://mirrors.sohu.com/mysql/MySQL-5.7/ 1.    wget -c  http://mirrors.sohu.com/mysql/MySQL-5.7/ ...

  5. C# 条件表达式max=(a>b)?a:b;含义

    a?b:c 这个是条件表达式,表示如果a为真,则表达式值为b,如果a为假,则表达式值为c条件表达式具体说明如下条件语句: if(a>b) max=a; else max=b; 可用条件表达式写为 ...

  6. MySQL压力测试(1)-mysqlslap

    mysqlslap是从MySQL的5.1.4版开始就开始官方提供的压力测试工具.通过模拟多个并发客户端并发访问MySQL来执行压力测试,同时提供了较详细的SQL执行数据性能报告,并且能很好的对比多个存 ...

  7. Python爬虫原理

    前言 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现我们眼前: 一.爬虫是什 ...

  8. Qt Widgets——动作类与小部件菜单项

    本文主要涉及以下三个类: QAction ——QWidgetAction QActionGroup QAction可称为动作类,它一般可当作菜单中的项组成菜单,也可作为工具栏上的按钮,它主要由图标.文 ...

  9. jQuery html5Validate基于HTML5表单 异步服务器端验证

    1. HTML5 自带的Validate 很漂亮,很好用, 但是一定要在form里用submit按钮,才生效 <form id="frmInfo" action=" ...

  10. summary_16th Nov, 2018

    一. 编程语言的分类: a. 机器语言:直接使用二进制指令去编写程序,必须考虑硬件细节 b:汇编语言:用英文标签取代二进制指令去编写程序,必须考虑硬件细节 c:高级语言:用人类能理解的方式编写程序,通 ...