技术标签: Java list中add方法详解 集合中add带下标与否的区别 list中add和set的区别 add与addAll的区别 add addAll set
List<String> list = new ArrayList<String>();
list.add("小汪");
list.add("小王");
list.add("小旺");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
List<String> addlist = new ArrayList<String>();
addlist.add(0,"小写");
addlist.add(1,"小谢");
addlist.add(2,"小鞋");
for (int i = 0; i < addlist.size(); i++) {
System.out.println(addlist.get(i));
}
(1)当前要插入的位置已存在时,会自动将当前位置及之后的元素全部后移进行插入
List<String> addList = new ArrayList<String>();
addList.add(0,"小刘");//默认第一个
addList.add(0,"小六");//新加入已有位置元素时,原位置及后面所有元素后移【小六 变成下标为零的元素,原 小刘后移,其余元素紧跟】
addList.add(1,"小柳");
for (int i = 0; i < addList.size(); i++) {
System.out.println(addList.get(i));
}
(2)参数index的值不能大于当前list的容量,即下标必须从0开始
List<String> addList = new ArrayList<String>();
addList.add(2,"小刘");
addList.add(0,"小六");
addList.add(1,"小柳");
for (int i = 0; i < addList.size(); i++) {
System.out.println(addList.get(i));
}
(3)由于ArrayList对象初始化时不包含任何元素,因此size的值为依旧为0,所以,即使在创建list对象时指定了初始化大小,也不可以从任意下标插入(无论是否初始化大小,下标必须从0开始)
List<String> addsize = new ArrayList<String>(5);
addsize.add(2,"小数");
addsize.add(4,"小树");
addsize.add(1,"小叔");
for (int i = 0; i < addsize.size(); i++) {
System.out.println(addsize.get(i));
}
List<String> list = new ArrayList<String>();
list.add("小汪");
list.add("小王");
list.add("小旺");
list.add("");
list.add(null);
List<String> listObj = new ArrayList<String>();
listObj.addAll(list);
for (int i = 0; i < listObj.size(); i++) {
System.out.println(listObj.indexOf(listObj.get(i))+"----"+listObj.get(i));
}
可以插入空的集合,但不能直接插入null
List<String> list = new ArrayList<String>();
list.add("小汪");
list.add("小王");
list.add("小旺");
list.add("");
list.add(null);
List<String> lista = new ArrayList<String>();
List<String> listObj = new ArrayList<String>();
listObj.addAll(list);
listObj.addAll(lista);
listObj.addAll(null);
for (int i = 0; i < listObj.size(); i++) {
System.out.println(listObj.indexOf(listObj.get(i))+"----"+listObj.get(i));
}
List<String> list = new ArrayList<String>();
list.add("小汪"); //0
list.add("小王"); //1
list.add("小旺"); //2
List<String> lista = new ArrayList<String>();
List<String> indexList = new ArrayList<String>();
indexList.add("小哈");
indexList.add("小蛤");
indexList.add("小铪");
List<String> listObj = new ArrayList<String>(20);
listObj.addAll(0,list); //0 1 2
listObj.addAll(1,lista);//不算数
listObj.addAll(3,indexList);
for (int i = 0; i < listObj.size(); i++) {
System.out.println(listObj.indexOf(listObj.get(i))+"----"+listObj.get(i));
}
(1)跟add(E element)方法类似:当前要插入的位置已存在时,会自动将当前位置及之后的元素全部后移进行插入
(2)插入的空集合是不算数的
(3)下标规则与add(int index, E element)方法一致,无论是否初始化大小,只能插入已存在且合法的下标
List<String> list = new ArrayList<String>();
list.add("小汪"); //0
list.add("小王"); //1
list.add("小旺"); //2
list.set(2,"哇哈哈");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.indexOf(list.get(i))+"----"+list.get(i));
}
相比线性查找,二分法查找则显得十分高效,其查找次数与总元素数量存在对数关系,即只要较少的查找次数就可以完成快速地搜索。下面实现二分法查找:原理:在进行二分法查找前需要先对数据进行排序(具体排序实现详见下一篇文章),定义left(数据集的开头),right(数据集结尾)两个变量,然后在这组数据中找到mid=(left+right)/2,然后将待查找元素与mid所指元素进行比较,如果相等将索引返回
L2-007. 家庭房产时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(&lt;=1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积其中 编号 是每个人独有...
Java中实现拷贝文件本文我们学习java中多种方式复制文件。首先使用标准IO和NIO2 api,然后利用第三方库实现。IO API首先,使用java.io api拷贝文件,需要打开流,循环遍历内容,写入另一个流:@Testpublic void givenIoAPI_whenCopied_thenCopyExistsWithSameContents() throws IOExce...
MPT(Merkle Patricia Tree):参考深入浅出以太坊MPT(Merkle Patricia Tree)MPT树结构示例1:rootHash扩展节点 prefix 0prefixshared nibblenext noderootHash16hashAhashA分支节点hashB006fhashDhashD分支节点hashE17hashFhashF分支节点hashG35coin
做oral汇报就相当于一群听众静静的坐在下面左手端着咖啡,右手拿着点心,他们时而低头沉思,时而举头和你眼神对视,更或者突然之间奋笔疾书,狂敲键盘。他们可能有的并不太懂你在说些什么,但也要小心的是不能高兴的太早,这时总会有一些出来“捣乱”的未来学术界扛把子们,在Q&A的时候抛给你一个刁钻的问题,让局面顿时陷入尴尬,当然,许多的听众们还是很和善、友好的。1.首先分会场主持人会介绍接下来汇报的是(某某),来自****,汇报的内容是**(当然对于这部分是否介绍就要取决于主持人了)。然后你就可以走上去开.
1、API方式,调用piapi.dll用ctypes.CDLL调用,显示非WIN32应用。以为是.NET的动态库,改用pythonnet调用,竟然要安装32位的python
错误提示:Access denied for user ''@'localhost' (using password: NO)我遇到的原因是application.yml配置文件中,字段拼写错误。解决办法:确认字段是否拼写错误,和账号密码是否正确!例如我的配置文件正确格式如下:spring: datasource: driver-class-name: com.mysq...
报表在应用软件开发中,是很重要的一部分。但是许多程序员可能对写程序很熟,对报表却并没有深入研究。这个教程,将通过30张报表,把报表的各种常见情况进行比较深入的讲解。 可以说,弄清楚了这30张报表怎么做,你就可以应对应用软件开发中绝大部分的报表需求。再碰到客户的各种要求,你就能够很容易判断出难易程度、工作量,清楚地知道能不能实现、怎么实现。第1张:最基本的数据列表500){this.re
平时我们造数据都是简单的在代码块中造,begin for....end这种代码块去循环造数据,这样造出来的数据单一,数据都是连续性的。最近开发应老大要求造一些离散的数据。所以首先想到了使用存储过程来生成一些离散的关联的,重要的数据。一:首先先创建packge:create or replace package pkg_xiaomo_test_report_data is ---创建...
一、IO简介 (1)工程目录二、原理图三、初始化结构体 typedef struct { uint32_t GPIO_Pin; //设置IO口 GPIOMode_TypeDef GPIO_Mode; //设置GPIO的工作模式。 ...
转载 http://www.aichengxu.com/java/6875596.htm因业务需要,使用UUID生成32位的字符串有点长,这个生成8位的字符串方案可行 public static String[] chars = new String[] { "a", "b", "c", "d", "e", "f", "g", &q