Java中集合概念
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中集合概念相关的知识,希望对你有一定的参考价值。
1.集合是储存对象的,长度可变,可以封装不同的对象
2.迭代器: 其实就是取出元素的方式(只能判断,取出,移除,无法增加)
就是把取出方式定义在集合内部,这样取出方式就可以直接访问集合内部的元素,那么取出方式就被定义成了内部类.
二每一个容器的数据结构不同,所以取出的动作细节也不一样.但是都有共性内容判断和取出,那么可以将共性提取,这些内部类都符合一个规则Iterator
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
另一种是
for(Iterator it = it.iterator(); it.hasNext();){
System.out.printin(it.next());
}
Collection:
(1).List:元素是有序的,元素可以重复.因为改集合体系有索引.
!--ArrayList:底层的数据结构使用的是数组结构 ,特点:查询速度快,但是增删慢.线程不同步
!--LinkedList:底层使用的是;链表数据结构,特点:增删速度快,查寻速度慢.
!--Vector:底层的数据结构使用的是数组结构 ,.线程同步,速度慢,被ArrayList替代l
list:特有方法,凡是可以操作角标的方法都是该体系特有的方法
增:add(index,element); addAll(index,Collection);
删:remove(index);
改:set(index,element);
查:get(index); subList(from,to); ListIterator();(重点)
注意:判断同一对象,equals方法
public boolean equals(Object obj){
if(!(obj instanceof Person))
return false;
Person p=new Person();
return this.name.equals(p.name)&&this.age==p.age;
}
(2). Set:元素是无序的(元素存入和取出的顺序是不一定一致的),不可以重复
!--HashSet:底层数据结构是哈希表
HashSet使如何保证元素唯一性的呢?
是通过元素的两个方法,hashcode和equals来完成
如果元素的HashCode相同才会判断equals是否为true,反の,不会调用
对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法
!--TreeSet:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.toArray()方法:是遍历用的(把集合转变为数组)
public class ToArray {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
Object[] obj=c.toArray();
for(int x=0;x < obj.length;x++){
System.out.println(obj[x]);
}
}
}
//定义一个数组
//String[] s={"hello","world","java"};
//List<String> list=Arrays.asList(s);
//直接引用
List<String> list=Arrays.asList("hello","world");
for(String s1:list){
System.out.println(s1);
}
3. Iterator迭代器是集合的特有遍历方法
while方法:(习惯用法)
Iterator it=list.iterator();//list是集合
while(it.hasNext()){ //判断是否有下一个数据
System.out.println(it.next());
}
for(Iterator it=c.iterator();it.hasNext();){
System.out.println(it.next());
}
4.list集合特有的遍历方法:就是size和get()的结合
for(int x=0; x<list.size();x++){
System.out.println(list.get(x));
}
ListIterator<String> lit=list.listIterator();
while(lit.hasNext()){
System.out.println((String)lit.next());
}
while(lit.hasPrevious()){
System.out.println((String)lit.previous());
}
以上是关于Java中集合概念的主要内容,如果未能解决你的问题,请参考以下文章