集合(1)—List接口的实现类ArrayList
- List
List接口是Collection接口的子接口,从其名称可以看出,是一个元素有序(并不是按大小排序,具有顺序索引,类似于数组),默认按照元素的添加顺序设置元素的索引。 List用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法。List接口定义的常用方法及功能:
- 方法一
- 声明一个List类型变量
public List courseToSelect;
- 无参构造器,初始化变量
public List courseToSelect; //List变量备选课程
public ListTest(){
this.courseToSelect=new ArrayList();
}
相当于
List list=new ArrayList();
- 创建一个实例
Course co=new Course("1","数据结构");
- 调用List的add方法把对象(实例)添加到List变量中
courseToSelect.add(co);//不指定插入位置
courseToSelect.add(0,co2);//指定插入位置
- 获得List类型数据courseToSelect变量中的数据,并输出课程信息(从LIst中的取得元素其类型为Course)
Course temp=(Course)courseToSelect.get(0);
System.out.println("添加了:"+temp.id+" "+temp.name);
或者
//创建一个课程数组,并在课程数组中添加两个元素(课程对象)
Course[] course={new Course("3","英语"),new Course("4","线性代数")};
//添加方法3addAll(传进去一个Collection实例),通过工具类Arrays中的一个asList方法将数组转换为List
courseToSelect.addAll(Arrays.asList(course));
//获得List类型数据courseToSelect变量中的数据并输出课程信息
Course temp4=(Course)courseToSelect.get(2);
全部代码:
package 集合框架;
public class Course {
public String id;
public String name;
public Course(String id,String name){ //含参构造器
this.id=id;
this.name=name;
}
}
package 集合框架;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ListTest {
//用于存放备选课程信息List
public List courseToSelect; //List变量备选课程
public ListTest(){
this.courseToSelect=new ArrayList();
}
public void testAdd(){ //用于往coursetoSelect中添加信息
//创建一个课程对象,并通过add方法,把对象添加到备选课程List中
Course co=new Course("1","数据结构");
//添加方法1
courseToSelect.add(co);
//获得List类型数据courseToSelect变量中的数据,并输出课程信息(从LIst中的取得元素其类型为Course)(因为List中取出的对象都是Object类型的)
Course temp=(Course)courseToSelect.get(0);
System.out.println("添加了:"+temp.id+" "+temp.name);
//创建一个课程对象,并通过add方法,把对象添加到备选课程List中
Course co2= new Course("2","C语言");
//添加方法2
courseToSelect.add(0,co2);
//获得List类型数据courseToSelect变量中的数据并输出课程信息
Course temp2=(Course)courseToSelect.get(0);
System.out.println("添加了:"+temp2.id+" "+temp2.name);
//再次获得List类型数据courseToSelect变量中的数据,以检验是否插入到指定位置
Course temp3=(Course)courseToSelect.get(0);
System.out.println("添加了:"+temp3.id+" "+temp3.name);
//创建一个课程数组,并在课程数组中添加两个元素(课程对象)
Course[] course={new Course("3","英语"),new Course("4","线性代数")};
//添加方法3addAll(传进去一个Collection实例),通过工具类Arrays中的一个asList方法将数组转换为List
courseToSelect.addAll(Arrays.asList(course));
//获得List类型数据courseToSelect变量中的数据并输出课程信息
Course temp4=(Course)courseToSelect.get(2);
Course temp5=(Course)courseToSelect.get(3);
System.out.println("使用数组添加了两个元素:"+temp4.id+":"+temp4.name+
"和"+temp5.id+":"+temp5.name);
//创建一个课程数组,并在课程数组中添加两个元素(课程对象)
Course[] course2={new Course("5","计算机网络"),new Course("6","计算机组成原理")};
//添加方法3addAll(传进去一个Collection实例),通过工具类Arrays中的一个asList方法将数组转换为List
courseToSelect.addAll(2,Arrays.asList(course2));
Course temp6=(Course)courseToSelect.get(2);
Course temp7=(Course)courseToSelect.get(3);
System.out.println("使用数组添加了两个元素:"+temp6.id+":"+temp6.name+
"和"+temp7.id+":"+temp7.name);
}
public static void main(String[] args){
ListTest lt = new ListTest();
lt.testAdd();
}
}
集合(1)—List接口的实现类ArrayList的更多相关文章
- 集合:List接口的实现类(ArrayList、LinkedList、Vector)
1.List接口 (1)特点 有序(插入和取出的顺序相等,因为有一个整数索引记录了元素的插入的位置) 允许有重复的元素(调用equals方法返回true,允许有多个null) @Test public ...
- java中List接口的实现类 ArrayList,LinkedList,Vector 的区别 list实现类源码分析
java面试中经常被问到list常用的类以及内部实现机制,平时开发也经常用到list集合类,因此做一个源码级别的分析和比较之间的差异. 首先看一下List接口的的继承关系: list接口继承Colle ...
- Java基础(十九)集合(1)集合中主要接口和实现类
1.Java集合框架为不同类型的集合定义了大量接口 其中,集合有两个基本接口:Collection和Map. 2.各接口的主要特征如下 (1)Collection接口:是List接口.Set接口和Qu ...
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
Java的List接口有3个实现类,分别是ArrayList.LinkedList.Vector,他们用于存放多个元素,维护元素的次序,而且允许元素重复. 3个具体实现类的区别如下: 1. Array ...
- 集合之四:List接口
查阅API,看List的介绍.有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的 ...
- java 集合之实现类ArrayList 和 LinkedList
List 的方法列表 方法名 功能说明 ArrayList() 构造方法,用于创建一个空的数组列表 add(E e) 将指定的元素添加到此列表的尾部 get(int index) 返回此列表中指定位置 ...
- java内部类、接口、集合框架、泛型、工具类、实现类
.t1 { background-color: #ff8080; width: 1100px; height: 40px } 一.内部类 1.成员内部类. (1)成员内部类的实例化: 外部类名.内部类 ...
- day07(Set接口,HashSet类,hashcoad(),Collections工具类,Map集合)
Set接口 set接口的实现类特点 1.无序(取出来的顺序和存进去的数据的顺序不一致) 2.唯一(数据不能存相同的) 底层是用Map集合写的 HashSet类 实现了 set接口 唯一 ...
- Java精选笔记_集合概述(Collection接口、Collections工具类、Arrays工具类)
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速 ...
随机推荐
- zabbix3.0使用ss命令对tcp连接数和状态的监控性能优化
zabbix3.0对tcp连接数及状态的监控优化 之前对tcp的监控采用netstat命令,发现在服务器繁忙的时候效果不理想,这个命令占用大量的cpu有时候高达90%以上,可能会导致业务的不稳定,所以 ...
- log4j2配置文件log4j2.xml
原地址:https://www.cnblogs.com/hafiz/p/6170702.html 1.关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.proper ...
- 实现div里的内容垂直居中
---恢复内容开始--- 在项目中我们会遇到这种情况,一个div的宽固定,里面的内容长度不定,不管是一行还是多行,都要垂直居中,有俩个实现方法: 1.使用absolute,top:50%,transf ...
- Stanford CS231n - Convolutional Neural Networks for Visual Recognition
网易云课堂上有汉化的视频:http://study.163.com/course/courseLearn.htm?courseId=1003223001#/learn/video?lessonId=1 ...
- hdu1517 巴什博奕变换
//没必要递推sg,直接巴什博奕即可 /* 先手面对[n/2,n/9]必胜,即后手面对n/18必败 同理,后手面对n/18^2必败... 那么能否使后手面对n/18^k的局势,在于n/18^k是否在[ ...
- python 全栈开发,Day73(django多表添加,基于对象的跨表查询)
昨日内容回顾 多表方案: 如何确定表关系呢? 表关系是在2张表之间建立的,没有超过2个表的情况. 那么相互之间有2条关系线,先来判断一对多的关系. 如果其中一张表的记录能够对应另外一张表的多条记录,那 ...
- ERP完善合同起草(二十八)
前端的代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CRMCont ...
- LINQ学习之旅(五)
Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 Union All/Union/Intersect操作 适用场景:对两个集 ...
- ThinkPHP3.1快速入门教程
ThinkPHP3.1快速入门教程 http://www.thinkphp.cn/info/155.html ------------------------------------------- ...
- ERROR 2003:Can't connect to MySQL server on 'localhost'
mysql出现10061错误解决办法 如果出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)", ...