Java基础之集合框架(Collection接口和List接口)
首先我们说说集合有什么作用。
一、集合的作用
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接口)的更多相关文章
- Java中的集合框架-Collection(二)
上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子 ...
- Java基础--说集合框架
版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...
- Thinking in java基础之集合框架(转载)
集合简介(容器)把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,例如这里有20个苹果,我们把每一个苹果当成一个东西(一个对象),然后我们借用袋子把这20个苹果装起来,而这个袋子就是集合(也叫 ...
- 黑马程序员——【Java基础】——集合框架
---------- android培训.java培训.期待与您交流! ---------- 一.集合框架概述 (一)集合框架中集合类关系简化图 (二)为什么出现集合类? 面向对象语言对事物的体现都是 ...
- Java中的集合框架-Collection(一)
一,Collection接口 在日常的开发工作中,我们经常使用数组,但是数组是有很多的局限性的,比如:数组大小固定后不可修改,只能存储基本类型的值等等. 基于数组的这些局限性,Java框架就产生了用于 ...
- java基础之集合框架
6.集合框架: (1)为什么出现集合类? 面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储. 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同 ...
- java基础37 集合框架工具类Collections和数组操作工具类Arrays
一.集合框架工具类:Collections 1.1.Collections类的特点 该工具类中所有的方法都是静态的 1.2.Collections类的常用方法 binarySearch(List< ...
- java基础-对集合(Collection)的总结
集合(Collection)类型也是Java标准库中被使用最多的类型. List ArrayList LinkedList 对于自定义的对象,需要正确覆写 equals方法 参看7.3 例子 Map ...
- Java基础之集合框架类及泛型简介
Collection接口 Collection 通用的常见方法 add()添加一个元素,可以指定脚标 addAll()将一个collection放入 clear()清除 remove()删除元素,返回 ...
随机推荐
- Redis的最常被问到知识点总结
1.什么是redis? Redis 是一个基于内存的高性能key-value数据库. 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库 ...
- Python函数编程——闭包和装饰器
Python函数编程--闭包和装饰器 一.闭包 关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数).而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数.当其中一个 ...
- Linux 笔记 - 第四章 Linux 文件和目录管理
博客地址:http://www.moonxy.com 1. 绝对路径和相对路径 绝对路径:由根目录 "/" 写起的.如:/usr/local/mysql 相对路径:不是由根目录 & ...
- 一个基于vue的仪表盘demo
最近写了一个基于vue的仪表盘,其中 主要是和 transform 相关的 css 用的比较多.给大家分享一下,喜欢的话点个赞呗?嘿嘿 截图如下: 实际效果查看地址:https://jhcan333. ...
- (七十一)c#Winform自定义控件-折现图
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- 【linux】【maven】maven及maven私服安装
前言 系统环境:Centos7.jdk1.8 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用.当Maven需要下载构件的时候,它从私服请求,如 ...
- logback.xml配置文件解析一
配置文件主要结构如下: <?xml version="1.0" encoding="utf-8"?> <configuration> & ...
- asp.netcore3.0 netstandard2.1 使用 DbProviderFactories 连接数据库
在.netstandard2.0时 System.Data.Common 这个包里并没有加入DbProviderFactories DbProviderFactories类在.netframework ...
- 第八届蓝桥杯java b组第二题
标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等. 下图就是一种排法(如有对齐问题,参看p1.png). A ...
- [经验栈]SQL语句逻辑运算符"AND"、"&&"兼容性
最近打算把博客转移到typecho平台,选了一个风格个人比较喜欢的主题,即Akina for Typecho 主题模板,在这里先感谢题主的开源分享,但是在使用过程中一开始就出现"500 Da ...