java集合框架基础入门.docx
- 文档编号:8470726
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:20
- 大小:20.30KB
java集合框架基础入门.docx
《java集合框架基础入门.docx》由会员分享,可在线阅读,更多相关《java集合框架基础入门.docx(20页珍藏版)》请在冰豆网上搜索。
java集合框架基础入门
Collection集合框架:
存数不同数据类型的容器
三大接口:
全部是泛型接口
1)Collection是集合的跟接口
2)Map接口,存放是键值对
3)Iterator是专门迭代结合的接口
List:
是一个有序的泛型接口(可以重复的)(有序可以重复的)
List的实现类:
1)ArrayList底层是一个数组
2)LinkedList底层是一个链表结构
面试题:
Collection和Collections的区别是什么:
Collection是所有的集合的根接口
Collections是用来操作集合的类其中包含了很多方法来操作集合(Array和Arrays)
ArrayList和LinkedList,Vector的区别:
ArrayList底层是数组查询效率较高,做插入时效率较低(线程不安全的,但是效率高)
LinkedList底层是链表,做查询的时候效率低,插入时效率高
Vector是同步的线程安全的,效率低
Set接口中的实现类
1)hashSet:
是无序的不可重复的
2)TreeSet:
可以实现排序(当存储的是对象时,必须实现Comparable接口重写CompareTo()进行自定义排序)
Iterator迭代器(专门迭代集合的神器)
1数组集ArrayList.java
ArrayListDemo1.java
packagecom.chinasofti.eec.collectionDemo;
importjava.util.ArrayList;
importjava.util.List;
publicclassArrayListDemo1{
publicstaticvoidmain(String[]args){
Listlist=newArrayList();
list.add("hello");
list.add("world");
list.add
(1);
list.add('男');
System.out.println(list);
}
}
ArrayListDemo2.java
packagecom.chinasofti.eec.collectionDemo;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassArrayListDemo2{
publicstaticvoidmain(String[]args){
List
list.add("hello");
list.add("world");
//list.add
(1);错误的
Collections.addAll(list,"您好","世界");
System.out.println(list);
}
}
ArryaListDemo3.java
packagecom.chinasofti.eec.collectionDemo;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
publicclassArrayListDemo3{
publicstaticvoidmain(String[]args){
List
list.add("A");
list.add("A");
list.add("C");
list.add("B");
System.out.println(list);
}
}
ArryaListDemo4.java
packagecom.chinasofti.eec.collectionDemo;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.List;
publicclassArrayListDemo4{
publicstaticvoidmain(String[]args){
List
Collection
collection.add("world");
collection.add("世界");
list.add("A");
list.add("A");
list.add("C");
list.add("B");
list.add(0,"hello");//在制定的位置去添加集合元素
list.addAll(collection);
list.addAll(0,collection);
list.set(0,"你好");//根据下标更改对应的集合元素
list.remove(0);//根据下标删除集合元素
list.remove("hello");//根据元素的内容去删除集合元素
list.removeAll(collection);
System.out.println(list);
System.out.println(list.size());
}
}
ArryaListDemo5.java
packagecom.chinasofti.eec.collectionDemo;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.List;
publicclassArrayListDemo5{
publicstaticvoidmain(String[]args){
List
list.add("A");
list.add("A");
list.add("C");
list.add("B");
String[]str=list.toArray(newString[list.size()]);
for(Stringstr1:
str){
System.out.println(str1);
}
System.out.println("=============================================");
Object[]strr=list.toArray();
for(inti=0;i System.out.println(strr[i]); } } } ArryaListDemo6.java packagecom.chinasofti.eec.collectionDemo; importjava.util.ArrayList; importjava.util.Collection; importjava.util.List; publicclassArrayListDemo6{ publicstaticvoidmain(String[]args){ List list.add("hello"); list.add("A"); System.out.println(list.indexOf("B")); System.out.println(list.isEmpty()); } } ArryaListDemo7.java packagecom.chinasofti.eec.collectionDemo; importjava.util.LinkedList; importjava.util.List; publicclassArrayListDemo7{ publicstaticvoidmain(String[]args){ List list.add("hello"); list.add("A"); /*System.out.println(list.indexOf("B")); System.out.println(list.isEmpty());*/ for(inti=0;i System.out.println(list.get(i)); } System.out.println("==================="); for(Stringstr: list){ System.out.println(str); } } } 2set接口实现类 Person.java packagecom.chinasofti.eec.vo; publicclassPersonimplementsComparable privateStringname; privateintage; publicPerson(Stringname,intage){ super(); this.name=name; this.age=age; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } @Override publicStringtoString(){ return"Person[name="+name+",age="+age+"]"; } @Override publicinthashCode(){ finalintprime=31; intresult=1; result=prime*result+age; result=prime*result+((name==null)? 0: name.hashCode()); returnresult; } @Override publicbooleanequals(Objectobj){ if(this==obj) returntrue; if(obj==null) returnfalse; if(getClass()! =obj.getClass()) returnfalse; Personother=(Person)obj; if(age! =other.age) returnfalse; if(name==null){ if(other.name! =null) returnfalse; }elseif(! name.equals(other.name)) returnfalse; returntrue; } @Override publicintcompareTo(Personp){ if(this.age>p.age){ return1; }elseif(this.age return-1; }else{ returnpareTo(p.name); } }; } SetDemo1.java packagecom.chinasofti.eec.collectionDemo; importjava.util.HashSet; importjava.util.Set; importcom.chinasofti.eec.vo.Person; publicclassSetDemo1{ publicstaticvoidmain(String[]args){ Set set.add(newPerson("张三",18)); set.add(newPerson("王五",18)); set.add(newPerson("李四",17)); set.add(newPerson("陈六",16)); set.add(newPerson("王五",15)); System.out.println(set); } } SetDemo2.java packagecom.chinasofti.eec.collectionDemo; importjava.util.Iterator; importjava.util.Set; importjava.util.TreeSet; importcom.chinasofti.eec.vo.Person; publicclassSetDemo2{ publicstaticvoidmain(String[]args){ Set set.add(newPerson("张三",15)); set.add(newPerson("王五",18)); set.add(newPerson("李四",17)); set.add(newPerson("陈六",16)); set.add(newPerson("王五",18)); Iterator while(it.hasNext()){ Personperson=it.next(); System.out.println(person); } } } SetDemo3.java packagecom.chinasofti.eec.collectionDemo; importjava.util.HashSet; importjava.util.Iterator; importjava.util.Set; importjava.util.TreeSet; importcom.chinasofti.eec.vo.Person; publicclassSetDemo3{ publicstaticvoidmain(String[]args){ Set set.add("hello"); set.add("world"); set.add("java"); set.add("c++"); set.add("dsadasd"); Iterator while(it.hasNext()){ Stringperson=it.next(); System.out.println(person); } } } 1ArrayList存储字符串并遍历 packagecn.itcast_01; importjava.util.ArrayList; importjava.util.Iterator; /* *ArrayList存储字符串并遍历。 要求加入泛型,并用增强for遍历。 *A: 迭代器 *B: 普通for *C: 增强for */ publicclassArrayListDemo{ publicstaticvoidmain(String[]args){ //创建集合对象 ArrayList //创建并添加元素 array.add("hello"); array.add("world"); array.add("java"); //遍历集合 //迭代器 Iterator while(it.hasNext()){ Strings=it.next(); System.out.println(s); } System.out.println("------------------"); //普通for for(intx=0;x Strings=array.get(x); System.out.println(s); } System.out.println("------------------"); //增强for for(Strings: array){ System.out.println(s); } } } 2迭代器 packagecn.itcast_01; importjava.util.ArrayList; importjava.util.Iterator; /* *需求: ArrayList存储自定义对象并遍历。 要求加入泛型,并用增强for遍历。 *A: 迭代器 *B: 普通for *C: 增强for * *LinkedList,Vector,Colleciton,List等存储我还讲吗? 不讲解了,但是要求你们练习。 * *增强for是用来替迭代器。 */ publicclassArrayListDemo2{ publicstaticvoidmain(String[]args){ //创建集合对象 ArrayList //创建学生对象 Students1=newStudent("林青霞",27); Students2=newStudent("貂蝉",22); Students3=newStudent("杨玉环",24); Students4=newStudent("西施",21); Students5=newStudent("王昭君",23); //把学生对象添加到集合中 array.add(s1); array.add(s2); array.add(s3); array.add(s4); array.add(s5); //迭代器 Iterator while(it.hasNext()){ Students=it.next(); System.out.println(s.getName()+"---"+s.getAge()); } System.out.println("---------------"); //普通for for(intx=0;x Students=array.get(x); System.out.println(s.getName()+"---"+s.getAge()); } System.out.println("---------------"); //增强for for(Students: array){ System.out.println(s.getName()+"---"+s.getAge()); } } } 3增强for循环 packagecn.itcast_01; importjava.util.ArrayList; importjava.util.List; /* *JDK5的新特性: 自动拆装箱,泛型,增强for,静态导入,可变参数,枚举 * *增强for: 是for循环的一种。 * *格式: *for(元素数据类型变量: 数组或者Collection集合){ *使用变量即可,该变量就是元素 *} * *好处: 简化了数组和集合的遍历。 * *弊端: 增强for的目标不能为null。 *如何解决呢? 对增强for的目标先进行不为null的判断,然后在使用。 */ publicclassForDemo{ publicstaticvoidmain(String[]args){ //定义一个int数组 int[]arr={1,2,3,4,5}; for(intx=0;x System.out.println(arr[x]); } System.out.println("---------------"); //增强for for(intx: arr){ System.out.println(x); } System.out.println("---------------"); //定义一个字符串数组 String[]strArray={"林青霞","风清扬","东方不败","刘意"}; //增强for for(Strings:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 集合 框架 基础 入门