集合框架

Posted on 2023-06-12 23:24  liuxin6de1b  阅读(50)  评论(0编辑  收藏  举报

一:集合框架简介

1.为什么使用集合框架?

由于数组在创建的时候会默认定义数组的长度,而数组的长度是不变的,而导致数组的赋值及创建会有内存浪费的现象,于是集合作为可以更改长度的”数组“可以解决内存浪费的现象。

2.集合框架架构图

集合有两个副接口collection;map

collrction有两个子接口list;set

list有两个常见的实现类arraylist,linkedlist

set有两个常见的实现类hashset;treeset

map有两个常见的实现类 hashmap,treemap

3.集合框架的特点

list:特点有顺序,并且可以重复

set:特点没有顺序,所以也不能重复

collection:特点没有顺序但是可以重复

map:特点存放一对值(key建-value值)建值对:一把钥匙陪一把锁

二:list接口

list接口的实现类种类

ArrayList特点:查询效率高(就相当于一组数组,查询只要输入角标就行)增删改效率低;数组存储

LinkedList特点:查询效率低,增删改效率高;链表存储

ArrayList集合类

1.实例化ArraryList对象

ArraryList arrarylist=new ArraryList()

2.添加数据add()

直接添加值:arraylist . add=(" ");

通过角标添加值:arraylist . add(0,"我是中国人");(0是角标,“我是中国人”是添加的值)

3.删除数据

通过角标删除数据(1代表的是角标)arraylist . remove(1)

通过值删除数据(1代表的不是角标)(arraylist . remove("1"))

4.查询数组

传统for循环 for(int i=0;i<arratlist . size();i++){=

System . out . println(arraylist . get(i))

}

增强for循环for(Object o :arraylist){

System . out . println ( o)

}

5.拓展

arraylist . size()是获取数组长度的方法

arraylist . get(i)是获取数组的每个元素值

 

arraylist集合类 泛型

<>用来指定集合存放数据的类型

1.<String>

ArrayList <String>arraylist=new ArrayList();

2.泛型中如果存放基本数据类型必须是包装类型。例如int的包装是integer

3.存放对象类型(封装对象,然后再ArrayList中进行输出)

ArrayList <User>arraylist=new ArrayList();

for循环输出对象

增强for循环输出对象

LinkedList

1.存放Object数据类型

LinkedList  linkedlist=new LinkedList();

2.存放对象数据类型

如果使用到LinkedList中独有的方法

users . addFirst()括号中写想要输出的值在数组中的第一位输出

users . addLast()括号中写想要输出的值在数组中的最后位输出

users . remove();remove后面加上First是删除首位;users.removeLast是删除最后一位;其它就和arraylast一个意思括号中填角标或者数值;

则不能使用List<Demo>list=new LinkedList()父类不能调用这个子类,父类不具备这些方法;

只能使用LinkedList<Demo>demo=new LinkedList<>();

set接口

1.核心要点

Itreator()获取迭代器对象

hasNext()获取是否有下一个值

next()获取下一个值

sets集合没有顺序的

sets集合不可存放重复的对象

Set sets=new HashSet();

Iterator its=sets . iterator();

while(its.hasNext()){

Object one=(Object)its.next();

System.out.println(one);

}迭代器固定的格式

2.set泛型 String

Set <String> sets=new HashSet();

Iterator<String> its=sets . iterator();

while(its.hasNext()){

String one=its.next();

System.out.println(one);

}

3.set对象类型

Ser <Demo>user=new HashSet();

Iterator<Demo>its=sets.iterator();

while(its.hasNext){

Demo u=its.next();

System out println(u.get(封装的对象))

}

Map类集合

1.实例化HashMap

Map map=new HashMap();

2.给HashMap赋值

map . put(" a ",1)“a”和1都是数组的成员,都不代表角标;“a”是key,1是value;

3.遍历HashMap

第一种 增强for循环

Set sets=map . keySet();(我对这里的理解是 . keySet是系统默认的能找到key值得方法;Set sets则是把Map集合中的kay值当成是Set类型的sets,然后就可以单独输出)

System . out . println(sets);(获取map中的所有key值)

for(Object o:sets){

System . out . println(map.get(o));

}获取map集合中的所有value值

第二种

Set sets=map . keySet()

Iterator its=sets . iterator()

while(its.hasNext()){

Object key = its.next();

}key 是kay值

value值是map.get(key)

4.map泛用

Map <String,Object>maps=new Hash Map;

Set<String >sets=maps.keySet();
Inerator its =sets.inorator();

while(its.hasNext){

String key=its.next()                  这是获取key值

Object vlaue=maps.get(key)    这是获取value值 }

5 map对象类型

Map<String,Demo   >maps=new HashMap<>();

maps.put(String类型的值,对象类型)添加值
Set<String >sets=maps.keySet()

Inerator<String>its=sets Inerator;

while(its.hasNext){

String key=its.next()获取key值

Demo u=map.get(key)获取value值

System.out.println(u.getId(获取对象类型中我设置的id的值)+u.getName(获取我在对象类型中设置的name的值))

 

}

 

Copyright © 2025 liuxin6de1b
Powered by .NET 9.0 on Kubernetes