容器 java集合框架

来源:互联网 发布:知乎老人吸烟猝死案 编辑:程序博客网 时间:2024/04/30 13:37

java集合框架提供了一套性能优良、使用方便的接口和类,他们位于java.util包中



Collection接口存储一组不唯一,无序的对象

List接口存储一组不唯一,有序(插入顺序)的对象

Set接口存储一组唯一,无序的对象

Map接口存储一组键值对象,提供key到value的映射

ArrayList优点遍历元素和随机访问元素的效率比较高。缺点:添加和删除需要大量移动元素效率低

例:

import java.util.ArrayList;import java.util.Iterator;public class CollectionDemo {public static void main(String[] args) {ArrayList<String> a = new ArrayList<String>();a.add("张三");a.add("李四");a.add("王五");a.add("你好");// 长度int b = a.size();System.out.println(b);// 输入要查找的 元素返回下标值int c = a.indexOf("王五");System.out.println(c);// 判断是否为空boolean flag = a.isEmpty();System.out.println(flag);// 修改 前面输入下标a.set(1, "赵四");// 读取System.out.println(a.get(1));// 遍历循环用来 读取ArrayList里面的内容for (String k : a) {System.out.println(k);}// for循环的办法读取for (int i = 0; i < a.size(); i++) {System.out.print(a.get(i) + "\t");}// 迭代器的读取 了解就行Iterator<String> it = a.iterator();// 当他有下一个是进入下一步while (it.hasNext()) {// 输出值System.out.print(it.next());}}}
LinkedList:优点插入删除元素时效率较高,缺点:遍历和随机访问元素效率低。

例:

import java.util.LinkedList;public class LinkedListDemo {public static void main(String[] args) {LinkedList<String> li = new LinkedList<String>();// 添加li.add("张三");// 在第一个前面添加li.addFirst("李四");// 在第一个前面添加li.offerFirst("王五");// 在最后一个后面添加li.addLast("赵四");/* * //迭代的方法 判断是否为空 不为空就 进去 while(!li.isEmpty()){ //删除查找 删一个找一个 * System.out.println(li.removeFirst()); * //System.out.println(li.removeLast()); //新的方法独有方法 pool * //System.out.println(li.pollFirst()); } */// for 循环 查找/* * for(int i = 0;i<li.size();i++){ //get方法 获取输出 * System.out.println(li.get(i)); } *//* * //foreach 循环遍历 for(String k:li){ System.out.println(k); } */// 查找第一个String a1 = li.getFirst();// 自己独有的方法 peekFirst 用来获取第一个String a2 = li.peekFirst();System.out.println(a1);System.out.println(a2);}}

HashSet:优点添加速度快,查询快,删除快。缺点:无序。

HashSet的唯一性基于 重写Hashcode和equals放的基础上

例:

/** * HashSet 集合 * 添加 删除最快 * Set没有get方法 * 其中的各个方法都是一样的 因为他们都是同一个祖父类的 *  其中的各个用途都是差不多一样的 *  */import java.util.HashSet;import java.util.Iterator;public class HashSetDemo  {public static void main(String[] args) {//创建方法HashSet<String>  a = new HashSet<String>();a.add("张三");a.add("李四");int s = a.size();System.out.println(s);//迭代器的  输出方式  因为 Set没有 get方法Iterator<String> b = a.iterator();while(b.hasNext()){System.out.println(b.next());}//也可以使用 for each 的方式    遍历for(String k:a){System.out.println(k);}}}
最后注意:TreeSet需要重写Comparable方法

 




原创粉丝点击