List使用注意点

来源:互联网 发布:淘宝卖家更换支付宝 编辑:程序博客网 时间:2024/06/07 23:23

1,在List使用中    listnew=list;和   listnew.addAll(list);  是不一样的

=是引用关系,listnew结构改变的时候list也改变了,而addAlll,listnew改变但是list结构不改变


总结list的方法:
List list = new List();

1、list.add()
在list中增加一个元素,如果只有list.add(Element el)则自动加在list的最后,并返回一个boolean值
而list.add(int index,element el)则表示在index的位置插入一个元素,无返回值。

2、list.addAll()
用法同上,有list.addAll(Collection c)和list.addAll(int index,collection c)两种,都返回一个

boolean值。collection类型扩展自java.util.Collection接口。

3、list.get(int index)
返回位置是index的一个元素值。

4、list.retainAll(Collection c)
获得所有c集合里面有的元素。

5、list.toArray()
把list的所有值返回到一个数组,list.toArray(T[] a) the runtime type of the returned array is

that of the specified array.不知道runtime怎么翻译。:(

6、list.subList(int fromIndex,int toIndex)
返回list位置fromIndex和toIndex之间的list。

7、list.clear()
remove all。

8、list.remove(Object o)   list.remove(int i)
public E remove(int index)。//每次删除一个元素,后面的元素自动全部向前移动; 
public boolean remove(Object o)//这个删除对象

1.倒过来遍历list

Java代码
  1. for (int i = list.size()-1; i > =0; i--) {
  2.   if (((String) list.get(i)).startsWith("abcde")) {
  3.    list.remove(i);
  4.   }
  5. }

2.每移除一个元素以后再把i移回来

Java代码
  1. for (int i = 0; i < list.size(); i++) {
  2.   if (((String) list.get(i)).startsWith("abcde")) {
  3.    list.remove(i);
  4.    i=i-1;
  5.   }
  6. }

3.使用iterator.remove()方法删除

Java代码
  1. for (Iterator it = list.iterator(); it.hasNext();) {
  2.   String str = (String)it.next();
  3.   if (str.equals("chengang")){
  4.    it.remove();
  5.   }
  6. }

9、list.removeAll(Collection c)
删除list中所有符合c集合的元素,返回boolean

10、list.set(int index,Element el)
把位置为index的元素图还成el。返回先前的元素值。

11、list.contains(Object o)
如果list中包含o,则返回true,同样list.containsAll(Collection c)也是如此。

12、list.indexOf(Object o)
返回list中o的位置,为int类型。

13、list.isEmpty()
返回true如果list为空。

14、listIterator()
返回一个重复出现元素的list,list.listIterator(int index)指从index开始计算重复元素。


其他方法还有hashCode(),equals(Object o),lastIndexOf(Object o),size(),iterator(),就不重复写了。

 

 

1.List转换成为数组。(这里的List是实体是ArrayList)

    具体用法:

List list = new ArrayList();
list.add("1");
list.add("2");
final int size = list.size();
String[] arr = (String[])list.toArray(new String[size]);

 

2.数组转换成为List。

  调用Arrays的asList方法.

   具体用法:

  String[] arr = new String[] {"1", "2"};

  List list = Arrays.asList(arr);

 

 

 Collections.sort(list, new PriceComparator()); // 根据价格排序  

 

  1.   // 自定义比较器:按书的价格排序  
  2.     static class PriceComparator implements Comparator  
  3.         public int compare(Object object1, Object object2) {// 实现接口中的方法  
  4.             Book p1 (Book) object1; // 强制转换  
  5.             Book p2 (Book) object2;  

 

                //p1在前是升序   反之则是降序

  1.             return new Double(p1.price).compareTo(new Double(p2.price));  
  2.                    
  3.          
  4.      

原创粉丝点击