您的位置:首页 > 编程语言 > Java开发

JAVA--集合(Collection)

2015-11-20 22:47 381 查看

集合:

----------| Collection
--------------| List   元素有序,可重复
-------------------| ArrayList  查询速度快,增删慢
-------------------| Linkedlist  增删快,查询慢
--------------| Set    元素无序,不可重复


方法:

1:add() 将指定对象存储到容器中
add 方法的参数类型是Object 便于接收任意对象
2:addAll() 将指定集合中的元素添加到调用该方法和集合中
3:remove() 将指定的对象从集合中删除
4:removeAll() 将指定集合中的元素删除
5:clear() 清空集合中的所有元素
6:isEmpty() 判断集合是否为空
7:contains() 判断集合何中是否包含指定对象
8:containsAll() 判断集合中是否包含指定集合
使用equals()判断两个对象是否相等
9:size()    返回集合容器的大小
10: toArray()   集合转换数组


样例代码:

public class Demo1{

public static void main(String[] args) {
/*
Collection  d = new ArrayList();
d.add("a");
d.add(12);
//System.out.println("是否添加成功"+d.add(3.14)); //add() 返回boolean

Collection c = new ArrayList();
c.add(3.14);
c.add('v');
c.add(12);
System.out.println("集合c "+c.size());
System.out.println("集合d "+d);
//d.addAll(c);
//d.clear();
//System.out.println("删除成功吗?"+d.remove(12)); //remove() 返回boolean
//d.removeAll(c);  // 在d中删除与c相交的元素。
d.retainAll(c);     // 在d中保留与c相交的元素,删除其他元素
System.out.println("集合c "+c);
System.out.println("集合d "+d);
*/

/*Collection a = new ArrayList();
a.add("小明");
a.add("小梁");
System.out.println("判断是否为空"+a.isEmpty());
System.out.println("判断是否包含某个元素"+a.contains("笑话"));*/
Collection a = new ArrayList();
a.add("小明");
a.add("小花");
a.add("小华");
a.add("小红");
/*
* Object[] arr = a.toArray();
for(int i=0; i<arr.length ; i++){
System.out.print(arr[i]+",");
}
System.out.println(a);
*/
Iterator it = a.iterator();
it.next();
it.remove();
System.out.println(a);
while(it.hasNext()){
/*it.next();
it.remove();*/
System.out.println("元素 :" + it.next());
}
}

}


List

方法:

1.add(int index,E element);
2.addAll(int index,Collection c);
3.get(int index);
4.indexOf(object o);
5.lastIndexOf(object o);
6.sunList(int start,int end);
7.set(int index,E element)
8.listIterator();
注意:在迭代器迭代元素的过程中,不允许用集合对象改变集合内的元素的个数,否则会抛出异常(ConcurrentModificationException),
如需要添加和删除元素,只能用迭代器的方法操作
9.hasPrevious();   判断是否存在上一个元素
10.previous()  当前指针先向上移动一个,然后再取出当前指针指向的元素。
11.next()  先取出取出当前指针指向的元素,然后指针再向下移。


样例代码:

public class Demo1{
public static void main(String[] args) {
/*List list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
list.add("赵六");
//list.add(1,"xiaowang");
List list2 = new ArrayList();
list2.add("小名");
list2.add("小红");
list.addAll(1,list2);
System.out.println(list.get(1));
System.out.println(list.indexOf("张三"));
System.out.println(list.lastIndexOf("赵六"));
System.out.println(list.subList(1,3));
list.set(1,"小云");
obj[] arr =list.toArray();
System .out.println(arr.toString);*/
List list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
list.add("赵六");
list.add("赵六");
//System.out.println(list);
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
ListIterator it = list.listIterator();
while(it.hasNext()){
System.out.println(it.next());
}
while(it.hasPrevious()){
System.out.println(it.previous());
}
}
}


ArrayList

ArrayList底层维护了一个object数组实现,使用无参构造函数时,
object数组默认容量为10,当长度不够时,自动增长0.5倍


样例代码:

// 删除集合中的重复元素
import java.util.ArrayList;
import java.util.ListIterator;
class Book{
String name;
int id;
public Book(String name,int id){
this.name = name;
this.id = id;
}
public String toString(){
return "["+this.name+","+this.id+"]";
}
public boolean equals(Object obj){
Book book = (Book)obj;
return book.id==this.id;
}
}

public class Demo3{
public static void main(String[] args) {
ArrayList  list = new ArrayList();
list.add(new Book("Java编程",110));
list.add(new Book("php编程",330));
list.add(new Book("C++编程",440));
list.add(new Book("javascript编程",220));
list.add(new Book("C编程",110));
ListIterator it=list.listIterator();
ArrayList list1=new ArrayList();
while(it.hasNext()){
Book book = (Book)it.next();
if(!list1.contains(book)){
list1.add(book);
}
}
System.out.println(list1);
}
}


Linkedlist

方法:

1.addFirst(E e)
2.addLast(E e)
3.getFirst()
4.getLast()
5.removeFirst()
6.removeLast()


样例代码:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class