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 编程思想阅读小结)的更多相关文章

  1. Java编程思想阅读收获

    15年8月份买了一本Java编程思想第四版中文版.之所以买中文版是因为我试读了同事的英文版发现自己英语水平还是有限,单词虽然认识,但对很多句子把握不准,这样看书太慢了,要理解英文还要理解技术有些hol ...

  2. 【Java编程思想阅读笔记】Java数据存储位置

    Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...

  3. java编程思想阅读记录

    第五章:初始化与清理 1.构造器确保初始化 构造器采用与类名相同的方法. 创建对象时,将会为对象分配存储空间,并调用相应的构造器.这就确保了在你能操作对象之前,它就已经恰当的被初始化了. 垃圾回收器负 ...

  4. java编程思想第九章接口

    9.1抽象类和抽象方法 为什么要有抽象类? 是希望通过通用接口操作一系列类. 那么抽象类的形式是什么样的呢? 声明类的使用使用abstract关键字,且在该类中应该具有抽象方法. 注:抽象方法被关键字 ...

  5. java 方法调用绑定--《java编程思想》学习笔记

    将一个方法调用同一个方法主体关联起来,就是绑定. 绑定分两种 :前期绑定 和 后期绑定 . 绑定------------- | -----前期绑定-------编译期绑定 { static , fin ...

  6. Java编程思想读书笔记(一)【对象导论】

    2018年1月7日15:45:58 前言 作为学习Java语言的经典之作<Java编程思想>,常常被人提起.虽然这本书出版十年有余,但是内容还是很给力的.很多人说这本书不是很适合初学者,我 ...

  7. JAVA编程思想——分析阅读

    需要源码.JDK1.6 .编码风格参考阿里java规约 7/12开始 有点意识到自己喜欢理论大而泛的模糊知识的学习,而不喜欢实践和细节的打磨,是因为粗心浮躁导致的么? cron表达式使用 设计能力.领 ...

  8. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  9. Java编程思想——初始化与清理

    PS:最近一直忙于项目开发..所以一直没有写博客..趁着空闲期间来一发.. 学习内容: 1.初始化 2.清理 1.初始化   虽然自己的Java基础还是比较良好的..但是在解读编程思想的时候还是发现了 ...

随机推荐

  1. 最新GHOST XP系统下载旗舰增强版 V2016年

    系统来自:系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年3月 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插 ...

  2. C#使用ADO.NET访问数据库(一)

    博主好久没更新博客了,最近有点忙(打麻将0.0..),今天更新一篇C#的,我还是想坚持更新博客,分享一下自己的心得,闲话少说,开始正题~~ ADO.NET概述:ADO.NET的作用在于他是客户端访问服 ...

  3. Laravel大型项目系列教程(五)之文章和标签管理

    一.前言 本节教程将大概完成文章和标签管理以及标签关联. 二.Let's go 1.文章管理 首先创建管理后台文章列表视图: $ php artisan generate:view admin.art ...

  4. Python导入其他文件中的.py文件 即模块

    import sys sys.path.append("路径") import .py文件

  5. oracle触发器

    类型 行级触发器: FOR EACH ROW 影响的每一行都会执行触发器 语句级出发器 默认的模式,一句话才执行一次触发器 触发器不能嵌套,不能含有事务控制语句 何时触发 Before:条件运行前 A ...

  6. Shell中字符串分割的三种方法

    问题:对于’1,2,3,4,5’这样的字符串输出采用,分隔开的1 2 3 4 5 特征:在字符串中没有空格 解决方法1: #!/bin/bash var=’1,2,3,4,5’ var=${var// ...

  7. 基于easyUI实现组织结构树图形

    一. 准备工作 1. 点击此下载相关文件 2. 进入 js 文件夹,解压缩 jquery-easyui-1.5.rar 到当前文件夹 二. 在浏览器中运行 organize.html 文件,即可看到效 ...

  8. .NET中集合已修改;可能无法执行枚举操作 的解决办法

    foreach是取只读的,在取的时候数据不能变(包括修改,删除,添加等).要避免这个问题,就应该使用for循环. https://msdn.microsoft.com/zh-cn/library/tt ...

  9. ubuntu kylin 14.04安装配置MongoDB v2.6.1(转)

    1.获取最新版本 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.1.tgz 2.解压并进入bin目录 tar zxvf mongo ...

  10. [转][iOS]NSHash​Table & NSMap​Table

    NSSet and NSDictionary, along with NSArray are the workhorse collection classes of Foundation. Unlik ...