集合:集合是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

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

  1. Kotlin学习笔记20 阶段复习2

    参考链接 示例来自bilibili Kotlin语言深入解析 张龙老师的视频 lambda表达式 内联函数 Kotlin学习笔记 第三章 函数 高阶函数 lambda表达式 内联函数_积跬步 至千里- ...

  2. java学习笔记20(Lambda表达式、函数式编程、流式计算、练习)

    文章目录 11.3 学习内容 Lambda表达式 Lambda标准格式 格式说明 省略规则 使用前提 函数式接口 预定义的函数式接口 工作内容 任务1 总结&明日计划 11.4 学习内容 流式 ...

  3. Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin

    1.容器API的类图结构如下: JAVA的集合类是一种特别有用的工具类,它可以用于存储数量不等的多个对象,并可以实现常用数据结构,如栈,队列等,除此之外,JAVA集合还可用于保存具有映射关系的关联数组 ...

  4. Java:Effective java学习笔记之 考虑实现Comparable 接口

    Java 考虑实现Comparable 接口 考虑实现Comparable 接口 1.Comparable接口 2.为什么要考虑实现Comparable接口 3.compareTo 方法的通用约定 4 ...

  5. 【Java学习笔记三】抽象类与接口

    对象的类型转换分为自动转换和强制转换两种 派生类向基类转换是自动转换,因为派生类中包含基类 基类向派生类的转换是强制转换 强制类型转换是通过在转换对象前面使用圆括号运算符来实现,圆括号内为要转换的目标 ...

  6. java1002java,疯狂java学习笔记1002---抽象类及接口

    抽象类: 1.抽象方法是只有方法签名,没有方法实现的方法. 2.抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法. 3.*抽象方法不能有 ...

  7. Java学习笔记20

    Objects是Java 7新增的一个工具类,它提供了一些工具方法来操作对象,这些工具方法大多是"空指针"安全的. Objects实现的方法如下: 关于compare(T,T,Co ...

  8. JAVA学习笔记(第五章 接口与继承)

    一.什么是接口 接口就像是一种模板,接口中放着没有内容的方法,类要是使用接口就必须声明接口中的方法.下面继续以LOL游戏为例: LOL的英雄,有些能够使用物理攻击,有些能够使用魔法攻击击,有些则两种攻 ...

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

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

最新文章

  1. mongodb学习笔记6--杂项与补充
  2. SQL 语法速成手册
  3. 读《程序设计实践》之一 风格
  4. SOCKET编程-时间服务器和客户端的实现
  5. Educational Codeforces Round 47 (Div 2) (A~G)
  6. Photoshop通道抠出散乱的儿童头发
  7. 信息服务器恢复需要多少时间,云服务器灾难恢复的4个计划
  8. 动图处理_终于找到了,最全的废气处理动图
  9. 如何读群晖硬盘_群晖nas使用教程6:将USB设备识别为本地SATA口硬盘 - 群晖教程...
  10. android qq第三方登录 实现,Android Studio实现第三方QQ登录操作代码
  11. 南昌工程学院c语言试题,南昌工程学院概率论与数理统计试题库部分题目
  12. 中职学校实验室安全整改总结报告
  13. 记一次windows系统主引导修复
  14. 面试记录-蚂蚁金服-算法工程师(共四面)通过
  15. 从多个文档在Word 2010中创建主文档
  16. macbookair有没有touchbar_高配MacBook Air和低配MacBook Pro选哪个?
  17. 一文带你了解知识图谱融入预训练模型哪家强?九大模型集中放送
  18. arcgis数据量大显示慢_百万量级矢量数据加载对比实验,Arcgis VS LSV专业版
  19. ad电阻原理图_arduino传感器专辑之光敏电阻模块
  20. python自动化操作电脑的简单实现

热门文章

  1. 【JS 逆向百例】webpack 改写实战,G 某游戏 RSA 加密
  2. php有哪些开源社区,PHP开源社区
  3. 【牛客 - 1080B】tokitsukaze and Hash Table(STLset,并查集,Hash)
  4. nltk安装punkt等语料库时报SSL错误完美解决方案及离线安装方法
  5. SpringMVC配置视图的直接映射view-controller命名空间
  6. mysql权重怎么配置_mysql如何按权重查询数据啊?
  7. java oracle database user dsn_跨会话序列化数据库连接
  8. vue mysql webapp_基于Laravel+VueJS实战开发WebAPP
  9. 在linux中加固mysql_mysql在linux下的安装
  10. java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?