【Java】Java常见的集合框架基本使用总结

《Java 7程序设计》!

主要整理了Java中常见的Collections Framework (集合框架)的使用方式,包括了List、ArrayList、Set、HashSet、Map、HashMap、Query和Stack 等的简单使用。

1、Collection 接口

Collection接口将对象存放在一起,主要包含add、clear、size、isEmpty、toArray等方法, 基本的意义看单词应该懂。Collection是最重要的集合框架接口。

2、List 和ArrayList

List是Collection的子接口,ArrayList是List的最常见的实现方式,下面来看基本使用方式:


/**
 * List基本使用
 */
 public void ListProcess(){
 //List是最流行的Collection接口,ArrayList是最常用的List实现
 //<E>代表泛型,因为List可以添加任意的对象,此时是String类型
 //无参数的ArrayList默认有10个元素
 List<String> myList = new ArrayList<String>();
 String s1 = "woshilkn";
 String s2 ="这是List的使用方式!";
 //使用add方法添加元素
 myList.add(s1);
 myList.add(s2);
 //因为是String,所以不能用整数int
 myList.add(1+"");
 //在指定位置添加元素
 myList.add(2,"csu");
 System.out.println(myList);
 //删除第三个元素(下标是2的元素)
 myList.remove(2);
 //将下标为2的元素设置为“我是刘凯宁”,并且将原来的元素返回
 String s = myList.set(2, "我是刘凯宁");
 //可以添加null
 myList.add(null);
 System.out.println(s);
 //打印长度
 System.out.println("myList的长度是"+myList.size());
 System.out.println(myList);
 //可以为设置一个ArrayList指定一个长度
 //List<Integer>myList2 = new ArrayList<Integer>(3);
 //集合的迭代方式 :Iterator 迭代器
 Iterator<String> iterator = myList.iterator();
 //while 实现迭代
 while (iterator.hasNext()) {
 String element = (String) iterator.next();
 System.out.println(element);
 }
 //for 实现迭代
 for(Object object:myList){
 System.out.println("第"+myList.indexOf(object)+"个"+object);
 }

 }

3、Set和HashSet

Set也是Collection的一个子接口,HashSet是Set的实现,与List的区别在于Set不允许有重复的元素,下面看代码


/**
 * Set的基本使用
 */
 public void SetProcess() {
 //Set和List使用基本类似,HashSet是一个最常见的实现
 Set<String> mySet = new HashSet<String>();
 mySet.add("这是一个set");
 //set不允许重复元素,第一个true 第二个false
 Boolean boolean1=mySet.add("我是lkn");//true
 Boolean boolean2=mySet.add("我是lkn");//false
 //可以添加null
 mySet.add(null);

 System.out.println(mySet+"\n第一次"+boolean1+"第二次"+boolean2);

 }

4、队列Query

Query是先进先出的


/**
 * Query队列基本使用,FIFO: first in first out
 */
 public void QueryProcess() {
 //FIFL队列,先进先出
 Queue<String> myQueue = new LinkedList<String>();
 //添加
 myQueue.add("A");
 //offer与add基本类似,但是offer添加失败的时候会返回false,
 //add添加失败的是抛出异常
 myQueue.offer("WWW");
 myQueue.add("C");
 //先进先出,所以删除第一个元素
 myQueue.remove();
 myQueue.add("D");
 //poll与remove类似,但是remove删除失败会抛出异常
 //poll删除失败返回一个null
 myQueue.poll();
 //返回最前端的元素,不删除
 String element = myQueue.element();
 System.out.println(element);
 //peek和element类似,但是element返回失败的话抛出异常
 //peek返回失败返回null
 String peek = myQueue.peek();
 System.out.println(peek);

 System.out.println(myQueue);
 }

5、栈 Stack

Stack是后进先出的


/**
 * Stack栈基本使用,LIFO: last in first out
 */
 public void StackProcess() {
 Stack<String>myStack = new Stack<String>();
 //add添加
 myStack.add("a");
 myStack.add("b");
 //删除下标为1的元素
 myStack.remove(1);
 myStack.add("c");
 //可用push添加
 myStack.push("www");
 System.out.println(myStack);
 //pop弹出
 System.out.println(myStack.pop());
 }

6、Map和HashMap

Map也是Collection的一个子接口,HashMap是Map的实现,散列表,不允许有重复的元素,以K-V形式存储元素,下面看代码


/**
 * Map的基本使用
 */
 public void MapProcess() {
 //HashMap是一个常见的实现
 Map<String, String> myMap = new HashMap<String, String>();
 //添加一个元素,K-V形式,不允许Key相同
 myMap.put("LKN","woSHI刘凯宁");
 //获取HashCode,这是一个唯一的整数
 int code = myMap.hashCode();
 System.out.println(code);
 //用remove删除,传入K
 myMap.put("LKN222","woSHI刘凯宁2222");
 myMap.remove("LKN222");
 //是否存在某一个K
 boolean existK = myMap.containsKey("LKN");
 System.out.println(existK);//true,存在
 //是否存在某一个V
 boolean existV = myMap.containsKey("LKNddd");
 System.out.println(existV);//false,不存在
 //获取V,用get ,参数是K
 String value = myMap.get("LKN");
 System.out.println(value);
 //返回一个由全部的K组成的Set
 Set<String> keySet = myMap.keySet();
 System.err.println("keySet"+keySet);
 //返回一个由全部V组成的Collection
 Collection<String> valueCollection = myMap.values();
 System.out.println("valueCollection"+valueCollection);
 //删除所有的元素用clear
 myMap.clear();
 System.out.println(myMap);
 }

主函数调用:


public static void main(String [] args){
//这个CollectionText是一个类,包含以上所有的方法
CollectionText listText = new CollectionText();
 listText.ListProcess();
 listText.SetProcess();
 listText.QueryProcess();
 listText.StackProcess();
 listText.MapProcess();
 }

以上代码亲测有效!

基本的集合框架的使用就总结到这里,以后多用多体会就好。

每天进步一点点!

刘凯宁
20150105

Share

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>