码迷,mamicode.com
首页 > 其他好文 > 详细

集合的规则与使用简介

时间:2015-08-12 23:41:50      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:线程安全   集合   arraylist   链表   



**************************************************
集合:
Student 【】 student = new student【10】;//长度孤星


集合的好处:长度是可变的长度随着集合中元素的元素的数量增加而扩大


java.util包中


Collection 接口:
List:一个一个的存储的有序的,允许重复
ArrayList类:使用的数据结构式数组,线程不安全,删除慢,增加插入快,线程不安全


LinkedList类:使用的是链表,查找的慢,删除的快


Vector类:使用的数据结构是数组是线程安全的被arrayList替代


Set:无序的,不许有重复的
HashSet:使用的数据结构hash表,线程不安全的,
TreeSet:使用的是二叉树,线程不安全的,按照存放的数值使其有序


Map 接口:一对一对的存储的,键-值
HashMap
TreeMap


集合可以存储不同类型的对象,容量可变




Collection共性的方法:


 boolean add(E e) 
          确保此 collection 包含指定的元素(可选操作)。 


 boolean addAll(Collection<? extends E> c) 
          将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。Collection都可以作为参数传递进去 


boolean remove(Object o) 
          从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 
 boolean removeAll(Collection<?> c) 
          移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 


 void clear() 
          移除此 collection 中的所有元素(可选操作)。 


判断:
boolean contains(Object o) 
          如果此 collection 包含指定的元素,则返回 true。 
boolean containsAll(Collection<?> c) 
          如果此 collection 包含指定 collection 中的所有元素,则返回 true。 


 boolean isEmpty() 
          如果此 collection 不包含元素,则返回 true。 


遍历集合的时候


int size() 
          返回此 collection 中的元素数。 


Iterator<E> iterator() 
          返回在此 collection 的元素上进行迭代的迭代器。 


集合转换成数组


<T> T[] 
 toArray(T[] a) 
          返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
package com.blueZhangDay09;


import java.util.ArrayList;
import java.util.Collection;
/*
创建一个Persion类创建构有参构造函数,main方法中创建Collection然后创建Persion对象使用有参数的构造函数,传递Collection返回Persion对象调用Persion的show方法。或者是使用main中的getCollection 获得Collection。




*/


public class Demo2 {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(new Persion("tom",18));
c.add(new Persion("Polly",19));
PersionAdapter pa = new PersionAdapter(c);
pa.showCollection();
c = loadData();
System.out.println(c);
pa.showCollection();

}
public static Collection loadData(){//加载
Collection col = new ArrayList();
col.add("aaa");
col.add("bbb");
return col;

}


}
class PersionAdapter{
private Collection c;
public PersionAdapter(Collection c){
this.c = c;

}
public void showCollection(){
System.out.println("集合中的元素"+c);
}
}


class Persion {
public Persion() {
super();
}
public Persion(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
private String name;
private int age ;

}
 
遍历 Iterator
遍历集合判断是不是存在下一个元素,如果存在那么就取出来使用的next方法


如果使用迭代器那么必须使用迭代器的remove()
package com.blueZhangDay09;


import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;


/**
 * 遍历 Iterator
 * 
 * */
public class Demo3 {
public static void main(String[] args) {
Collection col = new ArrayList();
col.add("aaa");
col.add("bbb");
col.add("ccc");


//获取集合对象的迭代器
Iterator it = col.iterator();
while(it.hasNext()){
Object o = it.next();
System.out.println(it.next());//获得对象
//col.remove(o);//抛出异常必须用迭代器中的remove()
it.remove();//删除最后一次获取的对象
}
//另一种方式
for(Object o:col){
System.out.println(o);
}
}


}




List 接口:存储的对象是有序的,可重复的。
  增加:
 void add(int index,Object o)


 void add(String item) 
          向滚动列表的末尾添加指定的项。
 
 void add(String item, int index) 
          向滚动列表中索引指示的位置添加指定的项。 




 void remove(int position) 
          从此滚动列表中移除指定位置处的项。
 
 void remove(String item) 
          从列表中移除项的第一次出现。 


 Object set(int index,Object o):返回原来的元素




查询:


ListIterator listIterator() 


List subList(int fromIndex,int toIndex)


ArrayList :
List接口的实现类通过下标操作,类似数组,先进先出,可变长度(first in fist out)




package com.blueZhangDay09;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


/**
 * List 接口:存储的对象是有序的,可重复的。
 * 增加
 * 
 * 
 * */
public class Demo3List {



public static void main(String[] args) {
List list = new ArrayList();
list.add("ni");
list.add("wo ");
list.add("dsd");
list.add("dd");
System.out.println(list);
list.add(1,"bb");
System.out.println(list);


//删除指定下标
System.out.println("成功删除"+list.remove(1));


//修改

list.set(1, "大家好");
System.out.println(list);

List sub = list.subList(1, 2);
System.out.println(sub);


//遍历
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());

}

//另一种
for (Iterator it1=list.iterator();it1.hasNext();) {
System.out.println(it1.next());
}
for(Object obj:list){
System.out.println(obj);
}
for (int i = 0; i <list.size();i++){
System.out.println(list.get(i));
}
//清空
while(!list.isEmpty()){
list.remove(0);
}
System.out.println(list.size());



}


}




ListIterrator:父接口Iterator
可以向前和向后获取数据支持增删改查操作
hasNext()


next()


hasPreivious()


PreviousIndex()


add()


set()



























版权声明:本文为博主原创文章,未经博主允许不得转载。

集合的规则与使用简介

标签:线程安全   集合   arraylist   链表   

原文地址:http://blog.csdn.net/bluezhangfun/article/details/47452995

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!