首先我们说说集合有什么作用。

一、集合的作用

1、在类的内部,对数据进行组织;

2、简单而快速的搜索大数量的条目;

3、有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素;

例如:做广播操的时候,可以将学生插入到某排某列,反之也可以叫某排某列中的学生出列。

4、有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。

例如:在吃饭的时候,众多铝饭盒中如何区别是自己的呢?在饭盒上刻独有的标志或贴纸条,这个标志和纸条就是我们所说的关键字。

二、集合和数组的区别

1、数组长度和容量是固定的,而集合是动态扩展的

2、数组只能通过下标访问元素,类型固定,而集合可以通过任意类型查找所映射的具体对象

三、集合框架

java集合框架中比较常用的有2个主要接口:Collection接口和Map接口。

Collection接口的三个主要子接口:

1、List:排列有序、可重复,它的实现类是ArrayList、LinkedList

2、Queue:排列有序、可重复,它的实现类是LinkedList

3、Set:无序、不可重复,它的实现类是HashSet

四、案例展示

我们建一个学生选课的工程,展示一下添加课程的功能,所以要建3个类,分别是Student类、Course类、ListTest类

Course类

package com.zm.collection;

public class Course {

public String id;

public String name;

public Course(String id, String name){

this.id=id;

this.name=name;

}

}

Student类

package com.zm.collection;

import java.util.HashSet;

import java.util.Set;

public class Student {

public String id;

public String name;

public Set courses;

public Student(String id,String name){

this.id=id;

this.name=name;

this.courses=new HashSet();//不能直接实例化set,因为set是一个接口,通过HashSet()进行实例化。

}

}

ListTest类

package com.zm.collection;

/**

* 被选课程

*/

import java.util.ArrayList; import java.util.List;

public class ListTest {

/**

* 用于存放被选课程的List

*/

public List coursesToSelect;

public ListTest(){

this.coursesToSelect=new ArrayList();

}

public void testAdd(){

//添加的第一种方法

Course cr1=new Course("1","数据结构");

coursesToSelect.add(cr1);

Course temp=(Course)coursesToSelect.get(0);

System.out.println("添加了课程:"+temp.id+":"+temp.name);

//添加的第二种方法

Course cr2=new Course("2","C语言");

coursesToSelect.add(0, cr2);

Course temp2=(Course)coursesToSelect.get(0);//对象存入集合都变成了Object类型,取出时也是Obeject类型,所以需要类型转换成Course类。

System.out.println("添加了课程:"+temp2.id+":"+temp2.name);

}

public static void main(String[]args){

ListTest lt =new ListTest();

lt.testAdd();

}

}

五、总结

通过以上例子我们可以看出,大致分为以下几个步骤:

1、创建一个类

2、添加该类的属性

3、创建含参构造器(构造方法:为了创建对象并初始化对象的值)

①、将第2步创建的属性传递给构造方法,例如:

public Student(String id,String name){

this.id=id;

this.name=name;

②、把传递给构造方法的id值赋给新对象的id值。

4、创建方法

①、给这个方法创建实例对象

②、采用   对象名.方法名()   来把实例传递进去

5、创建main主方法

①、给这个方法创建实例对象

②、调用第4步骤的方法

Java基础之集合框架(Collection接口和List接口)的更多相关文章

  1. Java中的集合框架-Collection(二)

    上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子 ...

  2. Java基础--说集合框架

    版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...

  3. Thinking in java基础之集合框架(转载)

    集合简介(容器)把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有20个苹果,我们把每一个苹果当成一个东西(一个对象),然后我们借用袋子把这20个苹果装起来,而这个袋子就是集合(也叫 ...

  4. 黑马程序员——【Java基础】——集合框架

    ---------- android培训.java培训.期待与您交流! ---------- 一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是 ...

  5. Java中的集合框架-Collection(一)

    一,Collection接口 在日常的开发工作中,我们经常使用数组,但是数组是有很多的局限性的,比如:数组大小固定后不可修改,只能存储基本类型的值等等. 基于数组的这些局限性,Java框架就产生了用于 ...

  6. java基础之集合框架

    6.集合框架: (1)为什么出现集合类? 面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储. 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同 ...

  7. java基础37 集合框架工具类Collections和数组操作工具类Arrays

    一.集合框架工具类:Collections 1.1.Collections类的特点 该工具类中所有的方法都是静态的 1.2.Collections类的常用方法 binarySearch(List< ...

  8. java基础-对集合(Collection)的总结

    集合(Collection)类型也是Java标准库中被使用最多的类型. List ArrayList LinkedList 对于自定义的对象,需要正确覆写 equals方法 参看7.3 例子 Map ...

  9. Java基础之集合框架类及泛型简介

    Collection接口 Collection 通用的常见方法 add()添加一个元素,可以指定脚标 addAll()将一个collection放入 clear()清除 remove()删除元素,返回 ...

随机推荐

  1. C#委托(delegate、Action、Func、predicate)和事件

    一.前言 刚开始工作的时候,觉得委托和事件有些神秘,而当你理解他们之后,也觉得好像没有想象中的那么难.在项目中运用委托和事件,你会发现他非常棒,这篇博文算是自己对委托和事件的一次梳理和总结. 二.委托 ...

  2. GO 语言学习笔记--数组切片篇

    1.对于make 数组切片,长度和容量需要理解清楚: 容量表示底层数组的大小,长度是你可以使用的大小: 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否 ...

  3. Django ORM 知识点总结

    Query是如何工作的 Django QuerySet是懒执行的,只有访问到对应数据的时候,才会去访问数据库.另外如果你再次读取查询到的数据,将不会触发数据库的访问,而是直接从缓存获取. 比如 # 这 ...

  4. 【学习笔记】第三章 python3核心技术与实践--Jupyter Notebook

    可能你已经知道,Python 在 14 年后的“崛起”,得益于机器学习和数学统计应用的兴起.那为什么 Python 如此适合数学统计和机器学习呢?作为“老司机”的我可以肯定地告诉你,Jupyter N ...

  5. 前端之JavaScript篇

    一. 简介 javascript是一门动态弱类型的解释性编程语言, 增强页面动画效果,实现页面与用户之间实时动态的交互.  JavaScript有三部分组成: ECMAscript, DOM, BOM ...

  6. Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现

    作者 | 声东 阿里云售后技术专家 文章来源:Docker,点击查看原文. 以我的经验来讲,理解 Kubernetes 集群服务的概念,是比较不容易的一件事情.尤其是当我们基于似是而非的理解,去排查服 ...

  7. 【数据结构】什么是AVL树

    目录 什么是AVL树 1. 什么是AVL树 2. 节点的实现 3. AVL树的调整 3.1 LL旋转 3.2 RR旋转 3.3 RL旋转 3.4 LR旋转 什么是AVL树 二叉查找树的一个局限性就是有 ...

  8. [AWS] 01 - What is Amazon EMR

    [DE] ML on Big data: MLlib 关于 Amazon EMR 发布版本 利用 Amazon EMR 分析大数据 Amazon Athena 是一种交互式查询服务,让您能够轻松使用标 ...

  9. 跟我学SpringCloud | 第二十章:Spring Cloud 之 okhttp

    1. 什么是 okhttp ? okhttp 是由 square 公司开源的一个 http 客户端.在 Java 平台上,Java 标准库提供了 HttpURLConnection 类来支持 HTTP ...

  10. 第十一周java课堂测试

    Main.java package class_third_copy; import java.util.Scanner; import classthird.Test; import classth ...