在讲这一块知识我们需要知道我们为什么要讲这些东西,因为我在一般的使用中很少关注这些,当我需要一个数组list时就会使用List<T> list=new ArrayList<T>();当我们需要一个键值对链表map时,Map<String,String> map=new HashMap<String,String>();就可以了,当我们需要无重复链表set时,Set set=new HashSet();这一切都是这么正常,但是我们应该知道我们为什么使用它们,如何正确使用它们,这些东西是你想学习java分布式应用的基础。
java分布式应用我认为最重要的一些基础知识,现在分享给你们,这是林昊写的《分布式Java应用》,集合包中ArrayList,LinkedList,Vector,Stack,HashSet,TreeSet,HashMap,TreeMap,并发包中ConcurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet,ArrayBlockingQueue,AtomicInteger,ThreadPoolExector,Executors,FutrueTask,Semaphore,CountDownLatch,CyclicBarrier,ReentrantLock,Condition,ReentrantReadWriteLock.
collection --子接口:List - -子类:ArrayList,LinkedList,Vector
首先我们讲解list相关的类有什么作用,怎么去做,原理,及其优势。
list家族图当你需要一个数组,当你需要一个集合时,当你遇到一组有顺序集合,你可以使用list相关的集合,因为他们都是继承了list接口,collection接口,所有他们有这些接口的方法,只是实现方式不一样,collection中我们一般使用add(E)来增加对象,remove(E)删除对象,get(int index)获取单个对象,iterator遍历集合,contains(E)判断是否存在,Collection array = new ArrayList();
不赞同使用collection来实现list相关的子类,因为很多方法都没有,比如上面的get方法已经没有了。但是来list的接口中有get方法 List arrayList = new ArrayList();
列举:list中的方法,同样可以使用在子类中LinkedList,ArrayList,Vector,Stack,
Collection array = new ArrayList();
array.add(2);
array.add("2");
System.out.println("collection array的一个对象是");
List arrayList = new ArrayList();
arrayList.add("1"); //添加对象到arralist中
arrayList.add(0, 1);//添加对象到指定的位置
arrayList.addAll(array);//添加集合到这个集合
// arrayList.addAll(0, array);//添加集合到这个集合的指定位置
// arrayList.clear();//清除list中的所有元素
System.out.println("元素是否存在:"+arrayList.contains("1"));//判断集合中是否有这个元素
System.out.println("集合是否存在:"+arrayList.containsAll(array));
System.out.println("判断集合是否相同:"+arrayList.equals(array));
System.out.println("判断集合是否为空:"+arrayList.isEmpty());
System.out.println("集合的迭代器"+arrayList.iterator());
/////////iterator 迭代器
Iterator iterator = arrayList.iterator();
while(iterator.hasNext()){
System.out.println("数据="+iterator.next());//不能有任何增删操作否者会触发快速失败机制
}
//arrayList.notify();//通知线程起来
//arrayList.remove("1");//删除list中的第一个某个对象
//arrayList.remove(1);//删除list指定位置的元素
arrayList.removeAll(array); //删除集合中的某个集合
LinkedList的使用
网友评论