黑马程序员------学习笔记(6)集合
来源:互联网 发布:dapaolu域名更换mp4 编辑:程序博客网 时间:2024/06/15 07:12
——- android培训、java培训、期待与您交流! ———-
Collection,set,list
Collection各元素之间没有指定的顺序,允许有重复元素和多个null元素
Set各元素之间没有指定的顺序,不允许有重复源素,最多允许有一个null元素对象
List各元素之间有指定的顺序,允许有重复的元素和多个null元素对象
List接口对collection进行了简单的扩充,它的具体实现类常用的有arrayList 和linkedList
你可以讲任何东西放到一个list容器中,并在需要时从中取出
arrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此他的随机访问速度极快,而LinkedList得内部实现是链表,它适合于在链表中间需要频繁进行插入和操作
在具体应用时可以根据需要自由选择,千亩按说的iterator只能对容器进行向前遍历,而listIterator则继承了iterator的思想,并提供了对list进行双线遍历的方法
Set几口也是collection的一种扩展。而与list不同的是,在set中的对象元素不能重复,也就是说你不能把同样的东西两次都放入同一个set中,它的常用具体实现有hashSet和treeset类
hashSet能快速定位一个元素,但是你放到hashset中的对象需要实现hashCode()方法,它使用了羡慕按说服哦的hash码算法,而treeset则将放入其中的元素按顺序存放,这就要求你放入其中的对象是可排序的,这就用到了集合框架提供的另外两个使用类compatable和comparator
一个类是可排序的,它就应该事先comparable接口。优势多个类具有相同的排序算法,那就不需要在没分别重新定义相同的排序算法,只要实现conparator接口即可,结合框架中还有两个很是有你的公用类
Collections和arrays,cillections提供了对一个collection容器进行诸如排序、复制、查找和填充等一些非常有用的费那个发,arrays则是对一个数组进行类似的操作
Map是一种把键对象和值对象进行关联的容器,而且一个值对象又可以使一个map,以此类推,这样就可能新城一个多集英社,对于键对象来说,向set一样,一个map容器中的键对象不允许重复,这是为了保持超找结果的一致性,过有两个键对象一样,那你想得到那个键对象对应的之对象就有问题了,可能你得到的并不是你想的那个之对象,结果会造成混乱,所以键的唯一性很重要,这也是符合集合的性质。的那个然在使用过程中,某个键对象锁对应的之对象可能会发生变化,这是会按照最后一次修改的值对象与键对应。对于之对象没有唯一性的要求
你可以将多个键都映射到一个值对象上,这样不会发生任何问题(不过对你的使用却可能造成不便,你不知道你得到的到底是哪一个键所对应的值对象)。Map有两种比较常用的事项:Hashmap和treemap
Map也是用到了哈希码的算法,一遍快速查找一个键,treeMao则是对键按顺序存放,因此它便有一些扩展的方法,比如firstKey(),lastKey()等,你还可以从treeMap中指定一个方位以取得其子map。键和值的关系很简单,用put方法即可将一个键与一个值独享相关联。用get()可能得到与此key对喜爱那个锁对应的值对象
- 容器的分类
1.1 collection:一组各自独立的元素,即其内部每个位置仅持有一个元素
1.2 list:以元素安插的次序来村饭位置元素,不会重新排列
1.3 set:不接受重复元素,它会使用自己内部的一个排列机制
1.4 map:一群成对的键值对象,即所有持有的是键值对
map中不允许有重复的key
1.Collection接口是List、Set、Queue接口的父接口。
public class CollectionTest { public static void main(String[] args) { Collection c = new ArrayList(); //添加元素 c.add("小明"); c.add(12); //删除元素 c.remove(12); System.out.println("集合中是否包含\"小明\"字符串"+c.contains("小明")) Collection b = new HashSet(); b.add("小明"); //用c集合减去b集合的元素 c.removeAll(b); //b集合只剩下c集合里也包含的元素 b.retainAll(c); }}
2.迭代器遍历集合
public class Test { public static void main(String[] args) { Array c = new ArrayList(); //添加元素 c.add("小明"); c.add("小王"); c.add("小张"); Iterator i = c.iterator(); while(i.hasNext()){ //返回的数据是object类型,需要强制类型转换 String name=(String)i.next(); //打印 System.out.println(name+"\n"); //判断如果是小王,就删除 if(name.equals("小王")){ i.remove(); } } }}
3.增强for循环遍历集合
public class Test { public static void main(String[] args) { Array c = new ArrayList(); //添加元素 c.add("小明"); c.add("小王"); c.add("小张"); // 元素类型 元素名:集合名 for(String name:c){ //打印 System.out.println(name+"\n"); //判断如果是小王,就删除 if(name.equals("小王")){ i.remove(); } } }}
——- android培训、java培训、期待与您交流! ———-
- 黑马程序员------学习笔记(6)集合
- 黑马程序员-学习笔记-集合
- 黑马程序员---Map集合 学习笔记
- 黑马程序员_java集合学习笔记
- 黑马程序员-java集合 学习笔记
- 黑马程序员java学习笔记,集合
- 黑马程序员-java基础-集合学习笔记
- 黑马程序员------java学习笔记之集合
- 黑马程序员_Set集合学习笔记
- 黑马程序员_ArrayList集合学习笔记
- 黑马程序员_Map集合学习笔记
- 黑马程序员 集合学习笔记三
- 黑马程序员 集合学习笔记二
- 黑马程序员 集合学习笔记一
- 黑马程序员---java学习笔记之集合
- 黑马程序员-java学习笔记-集合框架
- 黑马程序员--学习笔记(集合)
- (黑马程序员)学习笔记,Map集合
- thinkphp整合kindeditor编辑器详解
- 第一课,读写文件
- 单向链表LinkedList的使用
- ThinkPHP框架研究之一 基本函数 M和D的区别
- ThinkPHP中M方法与D方法有什么区别
- 黑马程序员------学习笔记(6)集合
- 黑马程序员------学习笔记(7)多线程
- 辛星浅析邮件服务中的几个概念
- c# 加密算法集锦
- 黑马程序员------学习笔记(8)网络编程
- java 求二叉树的深度
- 请区别对待女程序员 .
- 咦,你也在混日子啊 .
- 那些害死程序员的细节 .