JAVA第十七次作业

【集合概念】
1.类中属性类型相同,意义与作用也相同,就可以放到集合中
2.数组的长度是固定的,集合的长度或者容量在使用时可以动态扩展的
3.Collection接口和Map接口
4.Collection:序列List(元素排列有序可重复,实现类ArrayList,数组序列) 队列Queue(元素排列有序可重复,实现类LinkedList,链表也是List实现类) 集Set(无序不可重复 HashSet哈希集)
5.Map(实现类:HashMap 哈希表)内部类 Entry(键值对) 实例<Key,Value>
JAVA集合框架体系结构:Collection与Map是两个根接口。
Collection接口:内部存储的是一个个独立的对象。包含:
1、List接口:序列,存储元素排列有序且可重复。实现类:ArrayList,数组序列。实现类:LinkedList,链表。
2、Queue接口:队列,存储元素排列有序且可重复。实现类:LinkedList,链表。
3、Set接口:集,存储元素无序且不可重复。实现类:HashSet,哈希集。
Map接口:内部以<Key,Value>两个对象(任意类型)为一个映射去存储数据,这一个映射就是Entry类(Map的内部类)的实例。包括:实现类:HashMap,哈希表。
Collection(接口)
  - List(接口)(特点:有序,可重复)
    - ArrayList(实现类)
    - LinkedList(实现类)
  - Query(接口)(特点:有序,可重复)
    - LinkedList(实现类)
  - Set(接口)(特点:无序,不可重复)
    - HashSet(实现类)
Map(接口)(特点:Entry(Key,Value) -- 键值对:)注:Entry是Map的内部类
  - HashMap(实现类)
Collection接口是List、Set、Queue接口的父接口
Collection接口定义了可用于操作List、Set和Queue的方法--增删改查
List接口及其实现类--ArrayList
List是元素有序并且可以重复的集合,被称为序列。
List可以精确的控制每个元素的插入位置,或删除某个位置元素
List有add()插入方法和get()获取方法
ArrayList--数组序列,是List的一个重要实现类
ArrayList底层是由数组实现的,这也是其名字的由来
List是接口,所以在构造方法中不能直接实例化,而通过ArrayList()实例化。<br>
例:public List coursesToSelect = new ArrayList();<br>
调用Add()方法添加到List中。有两种方法:<br>
方法1:直接添加,例:CoursesToSelect.add(cr1);<br>
方法2:可以指定添加的位置,例:CoursesToSelect.add(0,cr1);<br>
使用get()方法取出一个对象,当一个对象被添加到集合中去的时候,它会被忽略掉类型,而都变成Object类型,取出时需要类型转换。<br>
例:Course temp = (Course)coursesToSelect.get(0);<br>
如果添加到List中的长度大于他目前的长度,则系统会出现异常,即数组下表越界异常<br>
addAll(Arrays.asList(数组名))的用法是:
1.创建一个对象数组并实例化。Course []course={new course(),new course()};
2.容器对象.addAll(Arrays.asList(对象数组名));
3.获取元素,定义一个Course对象来存储容器对象.get(index)的值 要类型转换。
Course temp=(Course)(CourseToSelect.get(index));
4.输出获取的值,System.out.println(temp.属性+temp.属性2);
list中还有addAll(List list)
就是将一个List里面的元素一股脑的全都加进去,妙哉妙哉
一般定义一个数组,如何把一个数组转换成List? 调用方法Arrays.asList(Object[] obs);//可以将一个数组转换为一个List,然后可以将这个元素传进addAll()里面
当然还有addAll(index,List list)方法
removeAll直接传入一个list,同理
记得取出东西之后,要类型强转哦!!!因为取出来都是Object的。
向List中添加元素的几种方法:
新建List类
public List courseToSelect;
初始化List类
public ListTest()
{
this.courseToSelect=new ArrayList();
}
向List中添加数据
method_1
courseToSelect.add(对象1);
method_2
courseToSelect.add(位置,对象2);
method_3
courseToSelect.addAll(Arrays.asList(数组_对象3));
method_4
courseToSelect.addAll(位置,Arrays.asList(数组_对象4));
获取
Course temp=(Course)courseToSelect.get(位置);
List可以精确的控制每个元素的插入位置,多删除某个位置的元素
- ArrayList底层是由数组实现

list.add(对象)把一个对象添加到另一个集合的队尾位置
list.add(index, 对象) 把一个集合添加到另一个集合的指定位置
list.addAll(集合对象) 把一个集合添加到另一个集合的队尾位置
list.addAll(index, 集合对象) 把一个集合添加到另一个集合的指定位置
Arrays.asList(数组) 把一个数组转换成List集合
以下三种方法都是用来取出List中元素的方法:<br>
-----for循环-----<br>
public void testGet(){<br>
int size=coursesToSelect.size();<br>
for(int i=0;i<size;i++){<br>
Course cr=(Course) coursesToSelect.get(i);<br>
System.out.println("取出的课程:"+cr.getId()+":"+cr.getName());<br>
}<br>
}<br>
-----迭代器-----<br>
Iterator是一个接口,依赖于集合存在的,本身不具备存储功能<br>
Iterator it=courseToSelect.iterator();<br>
while(it.hasNext()){<br>
Course cr=(Course) it.next();<br>
System.out.println("课程:" + cr.id + ":" + cr.name);<br>
}<br>
<br>
-----for each(增强for循环)-----<br>
<br>
凡是继承了Iterable接口的类所生成的对象都可以用for/each循环<br>
<br>
for(Object obj:coursesToSelect){//遍历集合中的每一个元素,作为每一个Object变量<br>
Course cr=(Course) obj;<br>
System.out.println("课程:" + cr.id + ":" + cr.name);<br>
}<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值