集合1

集合:也是一种存储数据的手段,一次可以存储多个值

短期存储:一旦计算机关闭了,存储的东西就会消失---对象、变量、数组、集合
长期存储:直接存储到硬盘上,可以长久保存,数据不会随着计算机的关闭而消失---各种文件,.tet,.doc,.png,.mp4,.mp3,.jpg

学习集合:
数组:可以存储不同类型的数据,可以存储简单数据类型,也可以存储引用数据类型
缺点:创建的是一个定值,只能存储固定长度的数据,一旦存满了,就不能再存了

集合:可以存储不同类型的数据,他的存储的空间会随着存储数据的增大而增大(可变的)
优点:可以更加合理的利用内存空间,方法很多,可以更加方便的实现功能
缺点:只能存储引用数据类型

集合分类:
Collection 接口
List 接口
ArrayList 类
Vetor 类
LinkedList 类
Set 接口
HashSet 类
TreeSet 类
Map 接口
HashMap 类
TreeMap 类

Collection中定义是整个集合体系最共性的方法:
因为Collection是接口,所以它自己不能new对象,只能通过多态来用
Collection collection1 =new ArrayList();
1.添加方法:
boolean add(Object 0)//添加某一个Object类型的数据
boolean addAll(Collection c)//将一个集合c添加到另一个集合
调用:
collection1.add("java");
collection1.add("php");
collection1.add("ios");
System.out.println(collcetion);//这里自动重写toString方法,可以直接打印出集合里面的内容

collection.addAll(collection2);//将collection2全部加到collection1中

2.删除
boolean remove(Object o)//删除某一个Object类型的数据
boolean removeAll(Collection c)//删除集合c包括的全部数据,如果没有,则跳过,删掉有的
调用:
collection1.remove("html");
collection1.removeAll(collection2);//删除指定的一批元素,但是在collection1中不一定包含collection2的所有元素

3.判断
boolean contain(Object o)//是否包含某个元素
boolean containAll(collection c)//是否包含另外一个集合
boolean isEmpty()//判断集合是否为空,这里的空!= null,说的是空集合
boolean equals(Object o)//判断是否两个元素或者集合相等,这里重写了equals方法,自动比较内容

4.集合变数组
Object[] toArray()
调用:
Object [] arr = collection.toAraay();

5.获取(重点)
Iterator iterator() //获取集合中的对象---叫迭代器
(可以把Iterator看做是一个类继承了collection,只要是集合要遍历,就必须用到Iterator中的方法iterator,用父类引用collection来调用子类的方法,说明接口Collection有iterator方法,Iterator类中重写了该方法)
int size() //获取集合中对象的个数
迭代器里面有两个方法
boolean hasnext():判断当前位置是否存在元素,存在返回true,不存在返回false
Object next():将当前位置的返回,并且将指向当前的指针指向下一个元素的位置
步骤:
1.获取当前对应的迭代器对象---通过调用集合对象的方法获取
Iterator iterator = collection.iterator();//前面是一个Iterator类型的变量iterator来接收集合collection调用方法iterator之后的结果

2.通过while循环实现遍历
while(iterator.hasnext()){
Object object = (Object) iterator.next();//这里需要向上转型,因为调用.next()的返回值默认是父类Object,这里默认是Object类的是因为你要打印集合所有类型的元素,需要用基类的变量来接受,才可以遍历,道理和数组遍历一样,判断一下,将元素返回,就可以打印了,就是循环一次打印一次,知道循环结束
System.out.println(object);
}

注意点:
1.集合中可以存储不同类型的数据
collection1.add(4);//这里是自动进行了装箱(将基本数据类型通过包装类转换并封装)
System.out.println(collection);

2.如果集合中存储了不同类型的数据,在使用的时候需要进行容错处理
Iterator iterator = collection2.iterator();
while(iterator.hasnext()){
Object object = (Object)iterator.next();
System.out.println(object)//这里可以打印出集合里面所有的元素,但如果要对集合里面的字符串进行其他操作就需要转成字符串类型的,然后对字符串类型的进行操作
if(object instanceof String){
//向下转型,目的是为了筛选出集合中字符串类型的元素,之前是Object类型的java,php,ios,4,容错处理会自动把4这个整型类型给过滤掉,只剩下字符串
String string = (String) object;
//调用字符串的特有方法
}
}

List:存储的对象时有序的(元素的位置和添加的顺序保持一致),可以重复的
ArrayList:底层的数据结构是数组,线程不安全的,查找速度快,添加删除速度慢
Vector:底层的数据结构是数组,线程安全的,查找速度快,添加删除速度慢
LinkedList:底层的数据结构是链表,线程不安全的,查找速度慢,添加删除速度快

Set:存储的对象时无序的

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 一、集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Col...
    程序员欧阳阅读 11,525评论 2 61
  • Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。 1、Java集合类里面最基本的接口? Col...
    Arya鑫阅读 416评论 0 0
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX阅读 869评论 0 1
  • 被风吹过的夏天 天很热,柳梢有气无力地低垂着,仿佛要钻进地皮,躲开酷热的太阳。但是我却不得不喜欢这种天气。(评:一...
    为为道来阅读 847评论 0 5
  • 文/洛子帅 青春,是一段回不去的时光,是一次又一次的错过,是一场又一场的遗憾,同时,它也是一种成长。走过青春,年少...
    洛子帅阅读 2,127评论 20 58