集合--第十六天

来源:互联网 发布:汉字笔顺软件下载 编辑:程序博客网 时间:2024/06/05 15:43

集合

数组和集合的区别

1 数组有长度限制,而集合没有

2 集合可以调用方法

 

 

最大的一个集合接口 Collection 

子接口:

1 List  :有序(自带下标)  可以重复(可以往集合中放入相同的值)

2 Set :无序(没有下标) 不能重复(不可以往集合中放入相同的值)

3 Map:  无序(键值对) 键不能相同,值可以相同

<key,value>

 

 

集合类

Arraylist

方法:

1.size() 得到集合的大小

2.get(i) 得到集合当前下标所对应的内容

3.add()添加

4.add(下标,内容)在下标出添加内容

5.remove(下标/内容); 根据下标/内容删除

6.clear();清空集合

7.set(下标, 对象);  

8.contains(查找)

 

 

泛型集合  --- <类型>代表该集合只能放该类型

ArrayList<Cat> arr=new ArrayList<Cat>();

底层结构是数组

 

泛型集合特点:

1 只能装同种类型的数据

2 当从集合中取元素的时候无需强转

 

 

狗狗管理系统  DogSystem

Dog 属性:id name age

public ArrayList<Dog> xx (ArrayList<Dog> arr){}

1 初始化3条狗

2 显示所有狗

3 添加狗

4 根据id删除狗

5 根据id修改狗的名字和年龄

6 清空狗狗

7 根据名字查询狗狗信息,如果没找到则打印暂无此狗

8 退出

要求: 狗的id必须是自增长  从1开始

 

LinkedList :

底层结构是链结构

ArrayList多了

getFirst() getLast()

addFirst() addLast()

setFirst() setLast()

removeFirst() removeLast()

 

面试题 ArraylistLinkedList Vectory的区别

Arraylist 底层结构是数组, 一般用于查询 LinkedList :链结构  一般用于操作

Vectory底层结构是数组  

 

键值对集合:

特点:

1 键唯一

2 值不唯一

3 无序(无下标)

HashMap<k, v> arr=new HashMap<k, v>();

其中k代表键  v代表值 :一个键指向一个值

添加:arr.put(k,v)

获取v :得到键,通过键再得值

  步骤:1 得到键的集合

     2 遍历键的集合去得值

 

 

 

迭代器

 

 

 

 

练习:初始化3条狗,用ArrayListHashMap

去装,然后分别用for循环和迭代器去遍历

 

 

 

 

练习:集合的嵌套

HashMap arr1:分别用Interger去对应String

arr1 :1 - 唐僧  2 -悟空....

HashMap arr2:分别用Interget去对应String

arr2 :1 - 刘备  2-曹操 ....

ArrayList arr3去装arr1arr2

求遍历所有的String

 

 

练习:集合的嵌套2

1年级有2个班(1班,2班)

1班有2个学生(小红18)(小绿19

2班有2个学生(小黑17)(小蓝20

最终在控制台中循环打印

1年级1班 姓名:小红 年龄18

1年级1班 姓名:小绿 年龄19

1年级2班 姓名:小黑 年龄17

1年级2班 姓名:小蓝 年龄20

要求用ArrayList,

类:Grades(年级) ,Classes(班级), Student(学生)

自己判断每个类的属性和方法(属性用private

思路:年级类中包含班级集合

      班级类中包含学生集合

 

 

 

 

 

 

原创粉丝点击