List接口方法使用(PS:Java 编程思想阅读小结)
发布日期:2022-02-22 18:04:11 浏览次数:8 分类:技术文章

本文共 3540 字,大约阅读时间需要 11 分钟。

1.用代码说话

1 package JavaProject;  2 import java.util.*;  3   4 public class A{  5     public static void main(String[]args){  6         List
list=new ArrayList
(Arrays.asList("ab","cd","ef","gh")); 7 8 /** 9 *list.add(param1),list列表末尾插入param1, 10 *list.addAll(param1),list列表末尾插入param1,param1是列表 11 *list.add(param1,param2);或者list.addAll(param1,param2),均表示在param1处插入param2插入 12 *eg:list.add(0,"ij"); 13 *eg:list.addAll(1,Arrays.asList("kl","mn")); 14 */ 15 16 /** 17 *list.remove(0);//return list(0) 18 *list.remove(new String("cd"));//return boolean 找不到,返回-1 19 *list.removeAll(Arrays.asList("gh","ef"));//return boolean 找不到返回-1 20 */ 21 22 /** 23 *list.set(0,"dkdkd");//替换 24 */ 25 26 /** 27 *list2.set(0,"ddddddd"); 28 *System.out.println(list);//[ddddddd, cd, ef, gh] 29 *可见sublist函数维护者原list对象的引用。 30 *因此对list2的操纵同样会在list中反应出来 31 */ 32 33 34 35 /** 36 *list.get(param1);//获取param1位值,list.get(0); 37 *list.indexOf(param2)//获取param2的序号,list.indexOf("ab"); 找不到,返回-1 38 */ 39 40 /** 41 *下面是对列表排序,打乱顺序的两种方法 42 *Collections.sort(list2); 43 *Collections.shuffle(list2); 44 */ 45 46 /** 47 *@param 从较大列表中创建片段,前开后闭 48 *List
list2=list.subList(0,2); 49 */ 50 51 /** 52 *!!!注意 sublist函数虽然是从较大列表中创建出一个片断, 53 *但是subList()所产生的列表的幕后就是初始列表,因此,对所返回的列表的修改都会 54 *反应到初始列表中,反之亦然! 55 *List
list2=list.subList(0,3); 56 *List
list3=list.subList(2,3); 57 *System.out.println(list2.retainAll(list3));//throw Exception,具体原因不明 58 *大概是因为,list2,list3同时list的片断,list2,移除操作造成list3被更改! 59 ================================================================= 60 *List
list2=list.subList(0,3); 61 *List
list3=list.subList(2,3); 62 *list2.remove(0); 63 *System.out.println(list3);//Exception,这里抛出异常可以解释上面retainAll抛出异常的原因 64 */ 65 66 /** 67 *Collection的retainAll函数的用法是求交集 68 JDK1.6中的源码: 69 70 public boolean retainAll(Collection
c){ 71 boolean modified = false; 72 Iterator
e = iterator(); 73 while (e.hasNext()){ 74 if (!c.contains(e.next())){ 75 e.remove(); 76 modified = true; 77 } 78 } 79 return modified; 80 } 81 *所以此函数的意思是: 82 *仅保留当前collection中那些也包含在指定参数collection中元素 83 *如果当前collection因为调用该函数发生了改变,就返回true,否则,false。 84 */ 85 86 /** 87 *无论是直接应用字符串常量,还是显式new创建String对象 88 *(应为String变量默认的equals方法是只要内容想用就返回true) 89 *以及顺序如何,都不影响containsAll的结果 90 */ 91 92 /** 93 *class Pet{} 94 *注意自定义对象默认的equals方法,是比较是同一个对象。 95 *List
pets=new ArrayList
(); 96 *pets.add(new Pet()); 97 *System.out.println(pets.indexOf(new Pet()));//-1 ,pets.contains(new Pet())false 98 */ 99 100 /**101 *list.toArray102 *toArray 方法将任意的Collection转换为一个数组,这是一个重载方法103 *其无参数版本返回的是Object数组,如String str[]=list.toArray();将报类型转换错误104 *如果向重载版本传递目标类型的数据,并且能通过类型检查,则将产生制定类型的数据。105 *例如:String []str=list.toArray(new String[0]);106 */107 /**108 *如果参数数组太小,存放不下List中的所有元素,toArray()方法将创建一个合适大小的数组109 *String []str=new String[2];110 *str=list.toArray(new String[0]);111 *System.out.println(Arrays.toString(str));112 */113 //list.clear();清空列表114 //list.size();列表大小115 //list.isEmpty();列表是否为空116 }117 }

 

转载于:https://www.cnblogs.com/MyBlog-Richard/p/5539524.html

转载地址:https://blog.csdn.net/dengsigukan55762/article/details/101976069 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:VS中逻辑文件夹与实际文件夹
下一篇:11.10.23 RMAN的使用(二)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月18日 09时59分38秒