集合


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

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

// ArrayList: 允许包括 null 在内的所有元素,此类是线程不同步的
public static void method1 () throws Exception
{
ArrayList arraylist = new ArrayList ();
arraylist . add ( 0 , "end" ); //指定索引加入值,需注意的是,如果现有2个值,我加入索引为5的那么就会出现异常,即不能越位
for ( int i = 0 ; i < 2 ; i ++){
arraylist . add ( i , String . valueOf ( i )); //将指定元素加入指定位置
}
System . out . println ( "ArrayList:" );
for ( int i = 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 static void method2 ()
{
String [] array = new String []{ "a" , "b" , "c" };
List list = Arrays . asList ( array ); // aslist(Object []) 通过一个已有数组,构造一个List对象
Collections . fill ( list , "Fill" ); //用Fill填充全部元素 使用指定元素替换指定列表中的所有元素。
System . out . println ( "\nCollections:" );
for ( int i = 0 ; i < 2 ; i ++){
System . out . print ( list . get ( i )+ ";" );
}
array = new String []{ "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 static void method3 ()
{
HashMap hashmap = new HashMap ();
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 static void method4 ()
{
HashSet hashset = new HashSet ();
//一个绝对不能重复的类型 如果有遇到存重复的值不会报异常,只是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 static void method5 ()
{
Hashtable hashtable = new Hashtable ();
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 static void method6 ()
{
TreeMap treemap = new TreeMap ();
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 static void method7 ()
{
TreeSet treeset = new TreeSet (); //自动排序内容
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 static void method8 ()
{
Vector vector = new Vector ();
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 ( int i = 0 ; i < 2 ; i ++){
System . out . print ( str [ i ]+ ";" );
}
vector . setSize ( 2 ); //重新设置大小为2
System . out . println ( "\n" + vector );

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值