List接口方法使用(PS:Java 编程思想阅读小结)
1.用代码说话
package JavaProject;
import java.util.*; public class A{
public static void main(String[]args){
List<String> list=new ArrayList<String>(Arrays.asList("ab","cd","ef","gh")); /**
*list.add(param1),list列表末尾插入param1,
*list.addAll(param1),list列表末尾插入param1,param1是列表
*list.add(param1,param2);或者list.addAll(param1,param2),均表示在param1处插入param2插入
*eg:list.add(0,"ij");
*eg:list.addAll(1,Arrays.asList("kl","mn"));
*/ /**
*list.remove(0);//return list(0)
*list.remove(new String("cd"));//return boolean 找不到,返回-1
*list.removeAll(Arrays.asList("gh","ef"));//return boolean 找不到返回-1
*/ /**
*list.set(0,"dkdkd");//替换
*/ /**
*list2.set(0,"ddddddd");
*System.out.println(list);//[ddddddd, cd, ef, gh]
*可见sublist函数维护者原list对象的引用。
*因此对list2的操纵同样会在list中反应出来
*/ /**
*list.get(param1);//获取param1位值,list.get(0);
*list.indexOf(param2)//获取param2的序号,list.indexOf("ab"); 找不到,返回-1
*/ /**
*下面是对列表排序,打乱顺序的两种方法
*Collections.sort(list2);
*Collections.shuffle(list2);
*/ /**
*@param 从较大列表中创建片段,前开后闭
*List<String> list2=list.subList(0,2);
*/ /**
*!!!注意 sublist函数虽然是从较大列表中创建出一个片断,
*但是subList()所产生的列表的幕后就是初始列表,因此,对所返回的列表的修改都会
*反应到初始列表中,反之亦然!
*List<String> list2=list.subList(0,3);
*List<String> list3=list.subList(2,3);
*System.out.println(list2.retainAll(list3));//throw Exception,具体原因不明
*大概是因为,list2,list3同时list的片断,list2,移除操作造成list3被更改!
=================================================================
*List<String> list2=list.subList(0,3);
*List<String> list3=list.subList(2,3);
*list2.remove(0);
*System.out.println(list3);//Exception,这里抛出异常可以解释上面retainAll抛出异常的原因
*/ /**
*Collection的retainAll函数的用法是求交集
JDK1.6中的源码: public boolean retainAll(Collection<?> c){
boolean modified = false;
Iterator<E> e = iterator();
while (e.hasNext()){
if (!c.contains(e.next())){
e.remove();
modified = true;
}
}
return modified;
}
*所以此函数的意思是:
*仅保留当前collection中那些也包含在指定参数collection中元素
*如果当前collection因为调用该函数发生了改变,就返回true,否则,false。
*/ /**
*无论是直接应用字符串常量,还是显式new创建String对象
*(应为String变量默认的equals方法是只要内容想用就返回true)
*以及顺序如何,都不影响containsAll的结果
*/ /**
*class Pet{}
*注意自定义对象默认的equals方法,是比较是同一个对象。
*List<Pet> pets=new ArrayList<Pet>();
*pets.add(new Pet());
*System.out.println(pets.indexOf(new Pet()));//-1 ,pets.contains(new Pet())false
*/ /**
*list.toArray
*toArray 方法将任意的Collection转换为一个数组,这是一个重载方法
*其无参数版本返回的是Object数组,如String str[]=list.toArray();将报类型转换错误
*如果向重载版本传递目标类型的数据,并且能通过类型检查,则将产生制定类型的数据。
*例如:String []str=list.toArray(new String[0]);
*/
/**
*如果参数数组太小,存放不下List中的所有元素,toArray()方法将创建一个合适大小的数组
*String []str=new String[2];
*str=list.toArray(new String[0]);
*System.out.println(Arrays.toString(str));
*/
//list.clear();清空列表
//list.size();列表大小
//list.isEmpty();列表是否为空
}
}
List接口方法使用(PS:Java 编程思想阅读小结)的更多相关文章
- Java编程思想阅读收获
15年8月份买了一本Java编程思想第四版中文版.之所以买中文版是因为我试读了同事的英文版发现自己英语水平还是有限,单词虽然认识,但对很多句子把握不准,这样看书太慢了,要理解英文还要理解技术有些hol ...
- 【Java编程思想阅读笔记】Java数据存储位置
Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...
- java编程思想阅读记录
第五章:初始化与清理 1.构造器确保初始化 构造器采用与类名相同的方法. 创建对象时,将会为对象分配存储空间,并调用相应的构造器.这就确保了在你能操作对象之前,它就已经恰当的被初始化了. 垃圾回收器负 ...
- java编程思想第九章接口
9.1抽象类和抽象方法 为什么要有抽象类? 是希望通过通用接口操作一系列类. 那么抽象类的形式是什么样的呢? 声明类的使用使用abstract关键字,且在该类中应该具有抽象方法. 注:抽象方法被关键字 ...
- java 方法调用绑定--《java编程思想》学习笔记
将一个方法调用同一个方法主体关联起来,就是绑定. 绑定分两种 :前期绑定 和 后期绑定 . 绑定------------- | -----前期绑定-------编译期绑定 { static , fin ...
- Java编程思想读书笔记(一)【对象导论】
2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...
- JAVA编程思想——分析阅读
需要源码.JDK1.6 .编码风格参考阿里java规约 7/12开始 有点意识到自己喜欢理论大而泛的模糊知识的学习,而不喜欢实践和细节的打磨,是因为粗心浮躁导致的么? cron表达式使用 设计能力.领 ...
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- Java编程思想——初始化与清理
PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化 虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...
随机推荐
- Atitit.android播放smb 网络邻居视频文件解决方案
Atitit.android播放smb 网络邻居视频文件解决方案 Android4.4 1.1. Android4视频播放器不能直接地支持smb协议..子好先转换成个http流 1.2. ES文件浏览 ...
- IO流总结
IO流的作用:用于设备和设备之间的数据传输. IO流的概念:流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象. IO流的分类: 按照操作数据的类型分为两种: 字节流和字符流. 按 ...
- 国产方法论之 ReDoIt -- 惟思捷
最近上了PMP课程,感觉受益匪浅,思路有被打开. 很同意一个观点“国人很擅长做事,但是不擅长总结出解决问题的通用框架和方法论”. 为了能提高中小企业生产力我最近成了一个小的软件咨询公司取名“惟思捷”, ...
- jqgrid+bootstrap样式实践
jqgrid+bootstrap样式实践,报错数据加载,选中,删除等功能 需要引入的样式 bootstrap.min.css ui.jqgrid.css 需要引入的JS jquery.min.js b ...
- [Erlang 0118] Erlang 杂记 V
我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下. 做笔记 一开始笔记软件做的不好的时候就发邮件给自己, ...
- vim 中替换
将80替换为10.0.0.19:80 :g/80/s//10.0.0.19:80/g
- Git权威指南 书摘
##$ git add welcome.txtwarning: LF will be replaced by CRLF in welcome.txt.The file will have its or ...
- android listview item取消按点击效果
设置android:listSelector="#00000000" 即可
- [NOI2006] 最大获利
[NOI2006] 最大获利 ★★★☆ 输入文件:profit.in 输出文件:profit.out 简单对比时间限制:2 s 内存限制:512 MB [问题描述] 新的技术正冲击着手 ...
- [译]RxJS 5.X基础篇
欢迎指错与讨论 : ) 当前RxJS版本:5.0.0-beta.10.更详细的内容尽在RxJS官网http://reactivex.io/rxjs/manual/overview.html.文章比较长 ...