随笔——Java编程学习(三)集合类

集合与IO(一)——集合类

集合和数组的区别

  • 集合可以改变长度
  • 数组长度不可变

ArrayList集合类

  1. add //添加数据;在指定索引位置插入一个数据
  2. addAll //添加多条数据;在指定索引位置插入多条数据
  3. remove/removeAll //删除一条或多条数据;删除指定索引位置的一条或多条数据
  4. contains/containsAll //查看集合是否包含一条或多条数据
  5. retain retainAll //求交集
  6. isEmpty
  7. toArray
父类List拥有的方法
  1. add(int index,Object ele) //在指定索引位置插入一个数据
  2. get(int index) //获取指定索引位置的一条数据
  3. remove(int index) //删除指定索引位置的一条数据
列表(List)的特点
  1. 有序的 //添加的元素按添加的先后顺序排列
  2. 可重复 //添加的元素可重复

Vector列表

与ArrayList集合类使用方式类似,区别在于线程是否安全。Vector的线程比ArrayList安全,但性能比ArrayList的低。如程序不是多线程,可选用ArrayList集合类。

  1. addElement
  2. elementAt
  3. 迭代器遍历

LinkedList列表

与ArrayList集合类的区别在于LinkedList可以很方便的插入数据和删除数据,而ArrayList集合类插入数据和删除数据比LinkedList列表慢。若需要频繁的插入和删除数据时,就使用LinkedList列表,因为它的性能比较高。

  1. add
  2. addFirst //在列表首位添加数据
  3. addLast //在列表末尾添加数据

集合的遍历

  1. 得到数组toArray

      import java.util.ArrayList;
      public class ArrayListDemo {
          public static void main(String[] args) {
              ArrayList al=new ArrayList();//集合类对象		
              //添加一条数据
              al.add("l");
              al.add("lsn");
              Object[] oArray=al.toArray(); //将集合中的每条数据添加到oArray对象中
              for(int i=0;i<oArray.length;i++){
                  System.out.print(oArray[i]+" ");
              }
          }
      }
    
  2. 得到遍历器iterator(只能遍历一次)

     public class ArrayListDemo {
     public static void main(String[] args) {
     	ArrayList al=new ArrayList();//集合类对象		
     	//添加一条数据
     	al.add("小明");
     	al.add("小红");
     	Iterator iterator=al.iterator();
     	System.out.println(iterator.next());//当每输出一次,指针就会指向下一个元素
     	System.out.println(iterator.next());
     	
     	//在未知元素个数时通过此方法遍历查看集合元素,只能遍历一次
     	while(iterator.hasNext()){
     		System.out.println(iterator.next());
     	}
    
  3. 高级for循环遍历

    public class ArrayListDemo {
    public static void main(String[] args) {
    	ArrayList al=new ArrayList();//集合类对象		
    	//添加一条数据
    	al.add("小明");
    	al.add("小红");
    	
    	for(Object o:al){
    		System.out.println(o);
    	}
    }
    

ArrayList、LinkedList、Vector三者的共同特点:可以添加重复数据,有序的(按照添加顺序排列)


集合中泛型的使用

集合里面只能存储引用类型;数组里面可以存储基本类型和引用类型。

ArrayList<Integer> al=new ArrayList<Integer>();  //参考例子,<Integer>是可省略部分,省略时代表可以存储任意类型的值
al.add(456); //会自动对基本类型进行装箱操作

HashSet集合类

  1. add //添加元素
HashSet的特点
  1. 无序的 //内部有自己的存储算法
  2. 不重复 //不会重复添加相同的数据
HashSet的遍历
  1. 高级for

TreeSet集合类

TreeSet的特点
  1. 无序的 //内部有自己的存储算法
  2. 不重复 //不会重复添加相同的数据
TreeSet的遍历
  1. 高级for

Map键值对存储(HashMap、TreeMap)

  1. put //将一个键值对存储到map中。键不能相同,如果相同的话,会把之前存储的值覆盖掉
  2. containsKey //是否包含某个键
  3. containsValue //是否包含某个值
  4. keySet //获取map键的集合
  5. get //通过键获取键所对应的值

关于HashTable和HashMap的区别

HashTable线程安全,但是性能比HashMap低。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值