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

集合和数组的区别:

1.数组的长度是固定的,集合的长度是可变的

2.集合中存储的元素必须是引用类型数据

对ArrayList集合的回顾

示例:

package demo;

public class Person {
private String name;
private int 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 + "]";
} public Person() {
} public Person(String name, int age) {
super();
this.name = name;
this.age = age;
} }
package demo;

import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String[] args) {
// ArrayList复习
// 存储基本数据
ArrayList<Integer> array = new ArrayList<>();
array.add(1);// 自动装箱
array.add(2);
array.add(3);
array.add(4);
array.add(5);
for (int i = 0; i < array.size(); i++) {
System.out.println(array.get(i));
} // 存储自定义类Person对象
ArrayList<Person> arrayPerson = new ArrayList<Person>();
arrayPerson.add(new Person("a", 20));
arrayPerson.add(new Person("b", 18));
arrayPerson.add(new Person("c", 19));
for (int i = 0; i < arrayPerson.size(); i++) {
System.out.println(arrayPerson.get(i));
//调用类重写的toString方法
}
}
}
/*输出:
2
3
4
5
Person [name=a, age=20]
Person [name=b, age=18]
Person [name=c, age=19]
*/

Collection接口是集合的根接口,研究它的方法应当通过它的实现类,

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

示例:

package demo;

import java.util.ArrayList;
import java.util.Collection; public class CollectionDemo {
public static void main(String[] args) {
function1();
function2();
function3();
} public static void function1() {
// 利用多态的特性
Collection<String> c1 = new ArrayList<String>();
// 存入元素,有序集合
c1.add("abc");
c1.add("def");
boolean b1 = c1.contains("abc");
System.out.println(b1);// true,集合中是否包含这个元素
c1.size();// 集合的大小,存入元素个数
c1.clear();// 清空集合中的元素,集合本身存在
} public static void function2() {
// 得到一个存储对象的数组
Collection<String> c1 = new ArrayList<String>();
c1.add("abc");
c1.add("def");
c1.add("ghi");
Object[] obj1 = c1.toArray();
for (int i = 0; i < obj1.length; i++) {
System.out.println(obj1[i]);
}
} public static void function3() {
// 删除元素
Collection<String> c1 = new ArrayList<String>();
c1.add("abc");
c1.add("def");
c1.add("ghi");
boolean b1 = c1.remove("abc");
System.out.println(b1);// true
// 是否删除成功,如果元素不存在,则删除失败
System.out.println(c1);// [def, ghi]
// 如果有重复元素的话,就删除第一个
}
}

Java学习笔记27(集合框架一:ArrayList回顾、Collection接口方法)的更多相关文章

  1. 【Java学习笔记】<集合框架>定义功能去除ArrayList中的重复元素

    import java.util.ArrayList; import java.util.Iterator; import cn.itcast.p1.bean.Person; public class ...

  2. 【Java学习笔记】<集合框架>TreeSet,Comparable,Comparator

    public class Person implements Comparable{ private String name; private int age; public Person(){ su ...

  3. 【Java学习笔记】<集合框架>对字符串进行长度排序

    package 测试; import java.util.Comparator; public class ComparatorByLength implements Comparator { //定 ...

  4. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

  5. Java基础学习笔记十七 集合框架(三)之Map

    Map接口 通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤立存在的(理解为单身),向集合中存 ...

  6. java学习笔记之集合—ArrayList源码解析

    1.ArrayList简介 ArrayList是一个数组队列,与java中的数组的容量固定不同,它可以动态的实现容量的增涨.所以ArrayList也叫动态数组.当我们知道有多少个数据元素的时候,我们用 ...

  7. Java学习笔记之集合

    集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...

  8. JavaSE 学习笔记之集合框架(十八)

    集合框架:,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合和数组的区 ...

  9. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

随机推荐

  1. hdu 4109 dfs+剪枝优化

    求最久时间即在无环有向图里求最远路径 dfs+剪枝优化 从0节点(自己添加的)出发,0到1~n个节点之间的距离为1.mt[i]表示从0点到第i个节点眼下所得的最长路径 #include<iost ...

  2. Mybatis实现 --文件夹

    本文是关于MyBatis的实现机制的探索,文章大量參考了网络上已有的相关文章并结合最新版本号的Mybatis做的整理 文件夹例如以下: Mybatis实现[1] ---Mybatis Basic[Ja ...

  3. Intellij IDEA安装golang插件

    原文作者:Jianan - qinxiandiqi@foxmail.com 原文地址:http://blog.csdn.net/qinxiandiqi/article/details/50319953 ...

  4. RT5350的uvc驱动支持yuv格式摄像头成功

    请尊重别人的劳动成果 转载请务必注明出处 今天在rt5350的板子上,成功将仅仅支持yuv格式的usb camera摄像头执行了.採用的是mjpeg streamer ,须要libjpeg库支持yuv ...

  5. HDU1598 find the most comfortable road 【并查集】+【枚举】

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  6. 用泛型创建SqlServerHelper类实现增删改查(一)

    使用泛型,可以构建对数据库单表的基本增删改查. 首先有一数据库 Test_SqlServerHelper ,有2表 接下来创建项目,对数据库进行增删改查. 直接贴代码:(SqlServerHelper ...

  7. ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。

    1.概况 注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题. 从2015年到现在的将近两年的时间,一直在开发.完善ServerSuperIO(S ...

  8. .Net版InfluxDB客户端使用时的一些坑

    1.如果应用程序是WebAPi,则需要使用同步版的InfluDB客户端 2.如果应用程序是Winform或Console程序或Windows服务,则使用同步或异步版客户端都可以,建议用异步版 3.如果 ...

  9. 3. python文件操作

            5 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:]        ...

  10. Platt SMO 和遗传算法优化 SVM

    机器学习算法实践:Platt SMO 和遗传算法优化 SVM 之前实现了简单的SMO算法来优化SVM的对偶问题,其中在选取α的时候使用的是两重循环通过完全随机的方式选取,具体的实现参考<机器学习 ...