javase简单入门10 集合框架,工具类

【学习笔记】

--------------------------------------------------------------------new对象===>加数据====>输出------------------------------------------------------------------

 

一、【集合框架】:JDK提供的一组接口,实现类,工具类   用到最多的就是查询   二进制向右移一位 减少一半(10右移一位为5)

 

Collection(接口):可以认为是个容器,存储单个元素集合的容器

 

List(接口):保证元素的顺序,允许元素重复

 

【重点】ArrayList(顺序表,数组)(子类):满足接口条件,特点:大小可变

LinketList(链表)(子类):以链表的方式存储数据,(列:环形数据,下一个上一个,当需要查找的位置大于长度一半,会是用回退查找(从后面开始))

 

ArrayList与LinketList的区别:1、前者是用数组存放元素,后者是链表存储。

     2、检索数据时,ArrayList快(顺序,有脚标当索引)   LinketList慢(一个一个对比)

     3、增加数据和删除数据时,ArrayList慢    LinketList块(只需要改两个位置的指向)

 

----------------------【两者区别:是否顺序,是否重复】--------------------

 

Set(接口):不保证顺序,不能重复

HashSet(子类):无索引

例子:

HashSet<Integer>qq = new HashSet<Integer>();

qq.add(12);

qq.add(34);

System.out.println(qq);//用size循环也行

 

【面试】        判断数据重复的标准:如果要保证不同对象里元素值不重复,需要重写两个方法:equals 和 hashCode两个方法 (缺一不可)。

------------------------------------------------------------------------------------------------------------------------------------------------------

 

Map(映射)(接口):存储键值(Key-value)对;

 

HashMap(子类)

 

 

importjava.util.Collection;

importjava.util.HashMap;

importjava.util.Set;

importjava.util.Map.Entry;//导入包

 

HashMap<String,String> map = new HashMap<String, String>();

map.put("a","Aasdac");

map.put("b","b1");

map.put("b","b2");// 当键都为b时 会覆盖掉原有值b1

map.put(null,null);// 可以为null

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

-----------------------------------------------

//第一种遍历方式

Set<String>keys = map.keySet();

for(String key : keys) {

System.err.println(key+ "=" + map.get(key));

}

//第二种遍历方式

Collection<String>values = map.values();

for(String value : values) {

System.out.println(value);

}

//第三种遍历方式

Set<Entry<String,String>> entries = map.entrySet();

for(Entry<String, String> entry : entries) {

System.out.println(entry.getKey()+ "=" + entry.getValue());

}

 

课堂练习:往ArrayList中放若干整形,计算所有正数之和

 

只做了解:vector,hashtable,

 

 

【工具类:Collections,Arrays(数组)】

 

//递归

publicint getNum(int index){

}

 

1,1,2,3,5,8,13,21,34,54            传一个位置,返回该位置的数字


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值