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. 【代码笔记】iOS-UILable电子表显示

    一,效果图. 二,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIVi ...

  2. Node.js 教程 03 - 创建HTTP服务器

    前言: 如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi. 从这个角度看,整个"接收 HTTP 请 ...

  3. 网页变灰的CSS代码

    body *{ -webkit-filter: grayscale(100%); /* webkit */ -moz-filter: grayscale(100%); /*firefox*/ -ms- ...

  4. C# 中Switch case 返回不止用break

    Switch(temp) { case "A": //跳出循环 break; case "B": //返回值 return var; case "C& ...

  5. Linux系统下面挂载u盘

    1.先插好u盘到Linux服务器,然后查看u盘挂载到哪个目录下面. [root@localhost ~]# /sbin/fdisk -l 2.挂载到u目录下面 [root@localhost ~]# ...

  6. 跳入linux的第一个坑-因为安装Ubuntu导致的硬盘被误格的恢复.(记TestDisk使用记录)

    不看废话,直接跳到操作说明 前几日心血来潮想把家中的旧笔记本换成Linux操作系统,算是在业余生活中正式投入Linux的怀抱.说干就干,发行版选择了Ubuntu,下载了Ubuntu16.04的ISO, ...

  7. CentOS下开启mysql远程连接,远程管理数据库

    当服务器没有运行php.没装phpmyadmin的时候,远程管理mysql就显得有必要了.因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK. mysq ...

  8. 使用Jenkins配置自动化构建

    持续集成是个简单重复劳动,人来操作费时费力,使用自动化构建工具完成是最好不过的了. 为了实现这个要求,我选择了Jenkins. 从http://mirrors.jenkins-ci.org/windo ...

  9. bash/shell编程学习(3)

    接上节继续, 1. 从键盘读取输入内容 #!/bin/bash read -p 'please input something:' input echo 'your input:' $input 运行 ...

  10. [LeetCode] Matchsticks to Square 火柴棍组成正方形

    Remember the story of Little Match Girl? By now, you know exactly what matchsticks the little match ...