1 ///: JavaBasic//com.cnblogs.pattywgm.day1//CollectionTest.java
2
3 package com.cnblogs.pattywgm.day1;
4
5 import java.io.BufferedReader;
6 import java.io.IOException;
7 import java.io.InputStreamReader;
8 import java.util.ArrayList;
9 import java.util.Arrays;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.ListIterator;
13
14 /**
15 * @author Administrator
16 * @Time: 2014-6-13
17 * @Descri: CollectionTest.java
18 */
19
20 public class CollectionTest {
21 //Testing of List
22 List<String> list1=new ArrayList<String>();
23 List<String> list2=new ArrayList<String>();
24 List<Integer> list3=new ArrayList<Integer>();
25
26 public CollectionTest() {
27 addElement();
28 }
29
30 public void addElement(){
31 int count=5;
32 while(count>=0){
33 //Appends the specified element to the end of list1
34 list1.add("goods"+count);
35 /*Insert the specified element in the head of list1
36 list1.add(0, "goods"+count);
37 */
38 count--;
39 }
40
41 }
42
43 public void addCollectionElements(){
44 //Appends all of the elements in list1 (the specified collection) to the end of list2
45 list2.addAll(list1);
46 }
47
48 public void getElement(List<String> list){
49 // 1)
50 for(int i=0;i<list.size();i++){
51 System.out.printf("%s's %dth element is %s",list,i,list.get(i).toString());
52 System.out.println();
53 }
54 System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
55 // 2)use Iterator
56 Iterator<String> iter=list.iterator();
57 int j=0;
58 while(iter.hasNext()){
59 System.out.printf("%s's %dth element is %s",list,j++,iter.next());
60 System.out.println();
61 }
62 }
63
64 public void removeElement(List<String> list,int index,String obj){
65 // 1) Removes the element at the specified position in this list
66 list.remove(index);
67 // 2) Removes the first occurrence of the specified element from this list, if it is present .
68 list.remove(obj);
69 /*
70 * Removes all of the elements from this list.
71 * The list will be empty after this call returns.
72 */
73 // list.clear();
74
75 }
76
77 public List<String> getSubList(List<String> list, int fromIndex, int toIndex){
78 return list.subList(fromIndex, toIndex);
79 }
80 //ListIterator
81 public void listIter(List<String> list){
82 ListIterator<String> listIter= list.listIterator();
83 //The element is inserted immediately before the next element that would be returned by next
84 //here the nexindex is 0
85 listIter.add("goods end");
86 System.out.println("previous index is :"+listIter.previousIndex()+" "
87 +"previous element is "+listIter.previous());
88 System.out.println("Change the last element of list...");
89 listIter.set("goods end changed");
90 System.out.println("正向遍历Starting...");
91 while(listIter.hasNext()){
92 System.out.println(listIter.next());
93 }
94 System.out.println("反向遍历Starting...");
95 while(listIter.hasPrevious()){
96 System.out.println(listIter.previous());
97 }
98 //Removes from the list the last element that was returned by next or previous
99 //Becareful: just one element every call
100 listIter.remove();
101 }
102
103 //add element : stdin
104 public void addElementStandard(List<Integer> list){
105 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
106 try {
107 String str[]=br.readLine().split(",");//split element with ','
108 for(String ss:str){
109 list.add(Integer.parseInt(ss));
110 }
111 } catch (IOException e) {
112 System.out.println("Error happended!!!");
113 e.printStackTrace();
114 }
115 }
116
117 public void sortList(List<Integer> list){
118 Object[] sortedList=list.toArray();
119 Arrays.sort(sortedList);
120
121 for(Object obj:sortedList){
122 System.out.print(obj+" ");
123 }
124 }
125 }
126 //:~

以上代码是对Java容器中List接口方法应用的各种实现,包括列表元素的增删改查。下面逐一做详细介绍:

1、增加列表元素

向列表中增加元素,总体来说有两类,即使用add()或addAll(),前者是向列表中直接插入指定的单个元素,而后者则是添加指定 collection 中的所有元素到此列表。

此外,可以指定向列表中插入元素的位置,这就将add()又细分为:add(E e)  add(int index, E element),前者默认在列表尾部增加元素,后者则在指定位置插入元素。

<addAll()的划分同add()>

2、删除列表元素

  Java API中,关于列表的删除操作有:remove()、removeAll()以及clear(),clear()将同时删除列表中的所有元素,但列表本身还是存在的,remove()依

据参数类型的不同,既可以实现删除指定位置的元素,也可以在不知道元素位置而知道列表中包含此元素时实现删除指定的元素,但此时只是删除第一次出现的指定元素,若

想删除列表中所有与指定元素相同的元素,可以循环调用remove(Object obj)直到列表中已不存在该元素。removeAll()则是实现从列表中移除指定 collection 中包含的

所有元素示例如下:

  

 List<String> lis=new ArrayList<String>();
lis.add("one");
lis.add("two");
lis.add("three");
lis.add("one");
lis.add("four");
lis.add("one");
lis.remove("one");
for(String s:lis){
System.out.println(s);
}
System.out.println("~~~~~~~~~~~~~~~");
while(lis.contains("one")){
lis.remove("one");
}
for(String s:lis){
System.out.println(s);
}

3、改变列表中已有元素

  改变列表中已有元素,主要通过set()方法实现,该方法包含两个参数,实现用指定元素(参数2)替换列表中指定位置(参数1)的元素。

4、查找列表元素

  同增删操作类似,查找也分为contains()和cotainsAll()两类,在此不再赘述。

【说明:】

  List接口所提供的还有其他很多方法,本文只说明了方法名称,未详细表明方法参数,具体请参照JAVA API。

Java 容器:Collection 初探之 List的更多相关文章

  1. java容器-Collection

    1.介绍    collection<E>是java中容器的最主要的接口,该接口继承于Iterable<E>,使得java中所有实现Collection<E>的容器 ...

  2. java容器——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  3. Java容器---Collection接口中的共有方法

    1.Collection 接口 (1)Collection的超级接口是Iterable (2)Collection常用的子对象有:Map.List.Set.Queue. 右图中实现黑框的ArrayLi ...

  4. java容器collection的一些简单特点

    1.List ArrayList 可随机访问元素,但中间插入和一处元素较慢 LinkedList 在中间进行的插入和删除操作代价较小,随机访问比ArrayList较慢 特性集比ArrayList大 2 ...

  5. 【Java心得总结六】Java容器中——Collection

    在[Java心得总结五]Java容器上——容器初探这篇博文中,我对Java容器类库从一个整体的偏向于宏观的角度初步认识了Java容器类库.而在这篇博文中,我想着重对容器类库中的Collection容器 ...

  6. 【Java心得总结五】Java容器上——容器初探

    在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成 ...

  7. java中Collection容器

    1.容器(Collection)也称为集合, 在java中就是指对象的集合. 容器里存放的都只能是对象. 实际上是存放对象的指针(头部地址): 这里对于八种基本数据类型,在集合中实际存的是对应的包装类 ...

  8. 理解java容器:iterator与collection,容器的起源

    关于容器 iterator与collection:容器的起源 iterator的简要介绍 iterable<T> iterator<T> 关于remove方法 Collecti ...

  9. java容器的理解(collection)

    容器类(Conllection)对于一个开发者来说是最强大的工具之一,可以大幅提高编程能力.容器是一个将多个元素组合到一个单元的对象,是代表一组对象的对象,容器中的对象成为它的元素. 容器适用于处理各 ...

随机推荐

  1. Oracle警告、跟踪文件(10046、死锁等跟踪)

    跟踪文件由各个后台进程生成,警报日志中记录关键操作包括:     ·所有启动和关闭命令,包括中间命令,如alter database mount     ·实例的所有内部错误(ORA-600错误,只能 ...

  2. MSSQL反旋转的例子

    with cte as ( select 'A' as tag , as num_1 , as num_2 , as num_3 , as num_4 ,null as num_5 union sel ...

  3. win7下IIS错误:"无法访问请求的页面,因为该页的相关配置数据无效"的解决方法(转)

    今天新装win7,然后在IIS下布署了一个网站,布署完成后运行,提示如下错误:HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该页的相关配置数据无效 ...

  4. knockout+bootstrap+MVC 登录页实现

    一.环境概述 1.MVC4.0项目 2.bootstrap引入: 生产环境版本引入:在web\Content 文件夹中引入bootstrap-3.2.0-dist, 源码版本CSS引入:将bootst ...

  5. 关于动态生成data组件

    /*! * WeX5 v3 (http://www.justep.com) * Copyright 2015 Justep, Inc. * Licensed under Apache License, ...

  6. Oracle存储过程 输出参数赋值异常:“Oracle.DataAccess.Types.OracleString”的类型初始值设定项引发异常。

    场景: 写了一个有返回参数的存储过程,在个另开发人员机器上都正常.其它机器报如题错误.让人郁闷的是,所有调用方都是客户端,根本不存在网上众贴所说的版本不一致问题. 分析: 虽然网上的帖子没有根本解决问 ...

  7. python标准库xml.etree.ElementTree的bug

    使用python生成或者解析xml的方法用的最多的可能就数python标准库xml.etree.ElementTree和lxml了,在某些环境下使用xml.etree.ElementTree更方便一些 ...

  8. Codeforces Round #378 (Div. 2) D - Kostya the Sculptor

    Kostya the Sculptor 这次cf打的又是心累啊,果然我太菜,真的该认真学习,不要随便的浪费时间啦 [题目链接]Kostya the Sculptor &题意: 给你n个长方体, ...

  9. hdu 5381 The sum of gcd

    知道对于一个数列,如果以x为左(右)端点,往右走,则最多会有log(a[x])个不同的gcd,并且有递减性 所以会分成log段,每一段的gcd相同 那我们可以预处理出对于每一个位置,以这个位置为左端点 ...

  10. ubuntu16.04解决播放swf视频文件问题

    使用下面 sudo apt-get install swfdec-gnome