集合

来源:互联网 发布:打色子软件 编辑:程序博客网 时间:2024/05/18 01:43

/*介绍集合之前先看一看迭代器:
简化对集合的操作,主要功能是遍历并选择集合中的对象,其中有三个最要的方法:
1.hasNext() 返回布尔值 看集合中还有没有元素
2.next() 返回下一个元素 返回的是O的所一定要强转一下
3.remove() 元素删除
接口 Iterator:
构建一个Iterator迭代器 -->Iterator iterator=所要进行迭代的集合对象.iterator();

接口 Enumeration: 注意=====Enumeration已经不是主流,Iterator是它的下一代替代品
构建一个Enumeration迭代器-->Enumeration enumeration=所要进行迭代的集合对象.elements()
*/

// ArrayList: 允许包括 null 在内的所有元素,此类是线程不同步的
public staticvoid method1()throws Exception
{
ArrayList arraylist=newArrayList();
arraylist.add(0,"end");//指定索引加入值,需注意的是,如果现有2个值,我加入索引为5的那么就会出现异常,即不能越位
for(inti=0;i<2;i++){
arraylist.add(i,String.valueOf(i));//将指定元素加入指定位置
}
System.out.println("ArrayList:");
for(inti=0;i<2;i++){
System.out.print(arraylist.get(i)+";");//get(int i)取出指定位置的元素
}
arraylist.add("0");//直接加入值到ArrayList的最后
arraylist.add("0");
// arraylist.lastIndexOf("0") 返回指定的对象在列表中最后一次出现的位置索引
System.out.print("\nArrayList\'s lastIndexOf(\"0\") is "+arraylist.lastIndexOf("0"));
}

// Collections: 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成
public staticvoid method2()
{
String []array=newString[]{"a","b","c"};
List list=Arrays.asList(array);// aslist(Object []) 通过一个已有数组,构造一个List对象
Collections.fill(list,"Fill");//用Fill填充全部元素 使用指定元素替换指定列表中的所有元素。
System.out.println("\nCollections:");
for(inti=0;i<2;i++){
System.out.print(list.get(i)+";");
}
array=newString[]{"1","2","3"};
List list2=Arrays.asList(array);
Collections.copy(list,list2);//拷贝list2的数据进list
System.out.println("\n"+list);
Collections.swap(list,2,1);//调换索引为1和2的元素的位置 在指定列表的指定位置处交换元素
System.out.println(list);
}

// HashMap 一个速度最快的容器,此类不保证映射的顺序,特别是它不保证该顺序恒久不变,不是线程同步
public staticvoid method3()
{
HashMap hashmap=newHashMap();
hashmap.put("0","c");//存放对象用put方法 记住所存的一定是键值对
hashmap.put("1","a");
hashmap.put("2","b");
hashmap.put("3","a");
System.out.println("HashMap:");
System.out.println(hashmap);//该容器有其内部的排序方式 事实上是依据哈希算法来排的
Set set=hashmap.keySet();//获取全部键 它的返回类型是set
Iterator iterator=set.iterator();
while(iterator.hasNext()){
System.out.print(hashmap.get(iterator.next())+";");
}
}

// HashSet 不保证集合的迭代顺序
public staticvoid method4()
{
HashSet hashset=newHashSet();
//一个绝对不能重复的类型 如果有遇到存重复的值不会报异常,只是add()会返一个boolean型的 false,当然肯定是不会把该元素加入集合 中的,它同样有size(),isEmpty(),remove()等方法。
hashset.add("c");
hashset.add("b");
hashset.add("a");
hashset.add("a");
hashset.add("b");
System.out.println("\nHashSet:");
System.out.println(hashset);
Iterator iterator=hashset.iterator();//取出元素
while(iterator.hasNext()){
System.out.print(iterator.next()+";");
}
}


//Hashtable 任何非 null 对象都可以用作键或值,现在用得不多啦,一个完全可以由其他容器替换的老容器类型
public staticvoid method5()
{
Hashtable hashtable=newHashtable();
hashtable.put("0","c");
hashtable.put("1","a");
hashtable.put("3","c");
hashtable.put("2","b");
System.out.println("\nHashtable:");
//注意与之对应的迭代器是Enumeration,而不是Iterator
Enumeration enumeration=hashtable.elements();//获取元素,Enumeration已经不是主流,Iterator是它的下一代替代品
while(enumeration.hasMoreElements()){
System.out.println(enumeration.nextElement()+";");
}
}


//TreeMap
public staticvoid method6()
{
TreeMap treemap=newTreeMap();
treemap.put("0","d");//指定键值,如果映射以前包含一个此键的映射关系,那么将替换原值
treemap.put("2","a");
treemap.put("1","b");
treemap.put("3","c");
System.out.println("\nTreeMap:");//可以对键排序
System.out.println(treemap);
System.out.println(treemap.firstKey());//返回第一个键
Set set=treemap.keySet();
Iterator iterator=set.iterator();
while(iterator.hasNext()){
System.out.print(treemap.get(iterator.next())+";");
}
}

//TreeSet
public staticvoid method7()
{
TreeSet treeset=newTreeSet();//自动排序内容
treeset.add("b");
treeset.add("a");
treeset.add("c");
treeset.add("d");
System.out.println("\nTreeSet:");
System.out.println(treeset);
System.out.println(treeset.first());//返回第一个元素
Iterator iterator=treeset.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next()+";");
}
}

//Vector 一个最早的容器类,实现方式最老,同是它是线程同步的的,所以效率最慢,先进先出
public staticvoid method8()
{
Vector vector=newVector();
vector.add(0,"b");//在指定位置加入指定元素
vector.add("a");//加到最后
vector.addElement("d");//加到最后,将其集合的大小加1
vector.add("c");
System.out.println("\nVector:");
System.out.println(vector);
vector.set(2,"h");//替换掉指定索引的元素
System.out.println(vector);
Object []str=vector.toArray();//将集合中的元素拷到一个数组中,注间因为集合中存的是对象,所以数组必须是Object类型
for(inti=0;i<2;i++){
System.out.print(str[i]+";");
}
vector.setSize(2);//重新设置大小为2
System.out.println("\n"+vector);

}
0 0
原创粉丝点击