java的集合框架
集合,又称为容方法,简单地说没他事一个对象,他能将相同性质的多个元素汇集成一个整体,数据条目存储,获取,操纵,和传书集合的数据。集合就代表形成一个自然组和的数据条目,例如一副纸牌,一个姓名和电话号码的映射集合。
首先要明确一个概念,就是集合中各个类以及集合的关系。
这里面有个错误,collection打错了,写成了collectio。并且这里collection是一种类(接口),而map,list,queue,set都是一种集合,而map和collection的父类都是object类。先明确这一点。
collection接口
先看一段代码
package jihelei;
import java.util.*;
import java.util.function.*;
public class Muster {
public static void main(String[] args) {
Collection<String>list=new ArrayList<>();//实例化几黑类对象
list.add("a");//向集合添加数据
list.add("b");
list.add("c");
Iterator<String>it=list.iterator();//创建迭代器
while(it.hasNext())//判断是否有下一个元素
{
String str =(String)it.next() ;//获取集合中的元素
System.out.println(str);
}
}
}
这里就是在主方法中实例化集合对象,并且向集合中添加元素,最后将集合中的对象以String输出
Collection的常见方法:
(1)添加
boolean add(E o);
boolean add(Collection<? extends E> c);
(2)删除
boolean remove(Object o);
boolean removeAll(Collection<? extends E> c)
void clear();
(3)判断
a.判断集合中是否有元素:boolean isEmpty();
b.判断集合中是否包含某个元素:boolean contains(Object o);
c.判断集合中是否包含某些元素:boolean contains(Collection<?> c);
(4)获取
a.获取集合中元素个数:int size();
b.遍历集合中所有元素:Iterator<E> iterator();
c.判断两个集合中是否存在相同的元素并保留两个集合中相同的元素删除不同的元素:boolean retainAll(Collection<?> c);
(5)其他
将集合中元素转为数组:a. Ojbect[] toArray();
b. <T> T[] toArray(); 泛型
list集合
List三大常用集合:
Vector:内部是数组数据结构,是同步的(线程安全的)。增删查询都很慢。
ArrayList:内部是数组数据结构,是不同步的(线程不安全的)。替代了Vector。查询速度快,增删比较慢。
LinkedList:内部是链表数据结构,是不同步的(线程不安全的)。增删元素速度快。
其中,ArrayList最常用。
list接口继承了collection接口,因此,list接口包括collection的所有的方法,另外,list接口还定义了两个全新的方法
get(int index)获得指定索引位置的元素
set(int index,Object obj)将集合中指定索引位置的对象修改为指定的对象
//通过ArrayList进行实例化list集合
List<E>list=new ArrayList();
、看一个示例
package jihelei;
import java.util.*;
class Muster {
public static void main(String[] args) {
List<String>list=new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
int i=(int)(Math.random()*list.size());
System.out.println("随机生成数组中的元素:"+list.get(i));
list.remove(2);
System.out.println("将索引为2的元素从数组中移除以后,数组中的元素为:");
for(int j=0;j<list.size();j++) {
System.out.println(list.get(j));
}
}
}
这里要注意,在最上面的package和import一定要加上,这里是导入所有的类,不然eclipse会报错。】
随机生成数组中的元素:b
将索引为2的元素从数组中移除以后,数组中的元素为:
a
b
上面的函数是进行随机生成数组中元素,下面的是进行数组的遍历。
map和set集合会在下一个博客提到。