**************************************************
集合:
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()
版权声明:本文为博主原创文章,未经博主允许不得转载。