一:集合框架简介
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的值))
}
标签:map,框架,arraylist,key,sets,集合,new,its From: https://www.cnblogs.com/liuxin6de1b/p/17474743.html