java集合类学习

来源:互联网 发布:厦大网络课程中心 编辑:程序博客网 时间:2024/06/07 00:25

  Collection类

  集合可以理解为一个动态数组,集合中的对象可以任意扩充.

  集合的特点:性能高;容易扩展。

  Collection的常用子类有:List、Set、Map

  一、List接口

  list接口可以存放任意类型的数据,而且在List接口中内容可以重复。

  List接口常用子类有:ArrayList、Vector。

  1.1ArrayList

  下面的Demo中展示了怎样创建ArrayList对象、添加元素、访问元素、移除元素。

  package ucas.collection.demo;

  import java.util.ArrayList;

  import java.util.List;

  public class ListDemo {

  public static void main(String[] args) {

  List lists = null;

  lists = new ArrayList();// list可重复

  // 添加

  lists.add("A");

  lists.add("B");

  lists.add("A");

  for (int i = 0; i < lists.size(); i++) {

  System.out.println(lists.get(i));

  }

  System.out.println("判断集合lists是否为空:"+lists.isEmpty());

  //返回第一次出现的位置

  System.out.println("A是否存在:"+lists.indexOf("A"));

  // 移除

  lists.remove(0);

  System.out.println("移除第一项以后:");

  for (int i = 0; i < lists.size(); i++) {

  System.out.println(lists.get(i));

  }

  }

  }12345678910111213141516171819202122232425

  1.2Vector

  Vector和ArrayList在使用上一样,区别主要在于内部实现上的性能与是否是线程安全上:

  比较项ArrayListVector

  推出时间jdk1.2jdk1.0

  处理方式采用异步处理方式,性能高采用同步处理方式,性能低

  是否是线程安全非线程安全线程安全

  VectorDemo

  package ucas.collection.demo;

  import java.util.List;

  import java.util.Vector;

  public class VectorDemo {

  public static void main(String[] args) {

  // ArrayList jdk1.2之后推出,采用异步处理方式,性能高,属于非线程安全;

  //Vector jdk1.0之后推出, 采用同步处理方式,性能低,属于线程安全。

  //方法使用都一样

  List lists = null;

  lists = new Vector();

  lists.add("A");

  lists.add("B");

  for (int i = 0; i < lists.size(); i++) {

  System.out.println(lists.get(i));

  }

  }

  }

  123456789101112131415161718192021

  二、Set接口

  Set接口中不可以加入重复元素,但是可以排序 。Set常用子类 有2个,散列存放使用HashSet ,有序存放使用TreeSet。

  package ucas.collection.demo;

  import java.util.HashSet;

  import java.util.Iterator;

  import java.util.Set;

  import java.util.TreeSet;

  public class SetDemo {

  public static void main(String[] args) {

  /*

  * Set接口中不可以加入重复元素,但是可以排序 Set常用子类 散列存放:HashSet

  * 有序存放:TreeSet

  */

  Set s = null;

  s = new TreeSet();

  s.add("B");

  s.add("A");

  s.add("C");

  s.add("D");

  s.add("E");

  s.add("F");

  s.add("G");

  System.out.println(s);

  }

  }

  123456789101112131415161718192021222324252627

  输出:

  [A, B, C, D, E, F, G]1

  HashSet:

  package ucas.collection.demo;

  import java.util.HashSet;

  import java.util.Set;

  public class HashSetDemo {

  public static void main(String[] args) {

  Set hs=new HashSet();

  hs.add("two");

  hs.add("one");

  hs.add("three");

  hs.add("four");

  hs.add("five");

  hs.add("six");

  System.out.println(hs);

  }

  }

  1234567891011121314151617181920

  输出

  [six, four, one, two, three, five]

0 0