java中集合的使用
集合使用:
先说数组:array :用来存同一种数组类型的容器
eg:现在想把班上所有人的信息存起来
1.每一个人的信息可以用一个对象存起来
2.可以用一个数组来接受(现在数组中要接受的是对象)
object[] arr ; : 数组中可以存放任意类型的对象
数组存放的问题:1.浪费内存,数组他的容量是固定的 无法随元素的变化而改变;
2.存放的数据类型不统一,
集合:用来存放对象的容器就是集合,集合可以存放任意类型的对象,而且长度可变
集合的结构:collection 接口 根接口 集合的公共方法都在接口中
-------->List 接口 特点:可以有重复元素,并且元素是按顺序排列的,有序的
-------->set 接口 特点:不可以有重复,而且是无序的
使用集合的目的:可以是数据的增,删,改,查,更加方便
增加:1.add();添加指定的对象
2.addAll();将一个数组中的元素添加到另外一个数组中,将其他集合中的元素追加到原集合元素的后面
eg:添加
colleection coll = new ArrayList();//collection是接口 ,所以需要通过实现来创建对象 集合中只能存放对象
coll.add(10);//添加元素 元素是可以重复的
coll.add["张三"];
System.out.println(coll);
删除:
remove(object o); 将指定的对象从集合中删除
removeAll()删除指定集合中的元素
eg:coll.remove(“张三”);
System.out,printtln("coll");
清空所有的元素
clear();清空所有的元素
eg: coll.clear();
System.out.println("coll");空的 null;
判断集合是否为空
System.out.println(“判断集合是否为空”+coll.isEmpty());false
查找是否存在指定的元素
Syatem.out.println("是否存在张三"+coll.comtains(“张三”)); true
集合中存放对象
collection 根接口
增加 : add()指定对象存储到容器中
addAll()指定集合中的元素添加到调用该方法和集合中
删除: remove()将指定的对象从集合中删除
removeAll()将指定集合中的元素删除
修改 clear()清空集合中的所有元素
判断 isEmpty()判断集合是否为空
contains()判断集合中是否包含指定的对象
containsAll()判断集合中是否包含指定的集合
获取 int size () 返回集合容器的大小
转成数组 toArray() 集合转换数组
List中特有的方法:
增加 :add(int index , E element)
addAll(int index, Collection< ? extends E> c)将指定的位置保留为另外一个集合
List<E> subList(int fromIndex,int toIndex)
获取 get (int index)
查找 indexOf(Object o)
lastIndex(Object o)
迭代器 listIterrator()
迭代器 :用来操作几个中的元素,增删,获取集合中的对象
Iterator:迭代器的超级接口:所有的迭代器接口都是继承Iterator
迭代器的常用方法:
hasNext();判断当前指针指向的位置是否存在元素
next() 获取当前指针指向元素,当这个方法被调用一次后指针就会下 一次
remove() 删除最后一次出现的对象
删除 remove(int index)
更新 set(int index,E element)
List集合中特有的方法,都是通过下标来操作的
ArrayList:是存在一个数组(存在一个Object[]),添加元素很慢,删除和查找很快,元素在内存中是有序的
LinkedList:添加元素很快,删除和查找比较慢,元素保存在数组是无序的
ArrayList:维护的是一个Object[],默认容量是10,如果默认不够,就增加原来的1.5倍
ArrayList:特有的方法
1.ensureCapacity(int minCapacity):手动增加容器
2.void tirmToSize() :调整集合的容量刚好符合元素的个数
需求:清楚集合中重复的元素,要求必须用迭代器来完成
java中集合的使用的更多相关文章
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- java中集合Collection转list对象
参考:java中集合Collection转list对象 首先我的需求是获取到购物车列表,购物车列表是一个Map对象,构造方法获取购物项,这里购物项是Collection对象 // 购物项集合,K商品I ...
- JAVA中集合转数组遍历
JAVA中集合的遍历的一种方法时集合转数组遍历,也是就调用Collection中的toArray(). 代码: public static void main(String[] args) { ...
- Java中集合List,Map和Set的差别
Java中集合List,Map和Set的差别 1.List和Set的父接口是Collection.而Map不是 2.List中的元素是有序的,能够反复的 3.Map是Key-Value映射关系,且Ke ...
- Java中集合的概述
一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数 ...
- Scala中集合类型与java中集合类型转换
对于java中的集合元素并不能在scala中拿来就用的,需要进行相应的转换. 1. 转换规则如下 从下面可以看出,有些可以相互转换的,有些只能单向转换: scala.collection.Iterab ...
- Java中集合关键字的区别
1. ArrayList.Vector和Stack有什么区别? 1.ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样) 2.Stack继承了Vec ...
- Java中集合概念
集合的由来: 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行储存,而想要储存多个对象,就不能是一个基本的变量,而应该是一个 ...
- JAVA中集合输出的四种方式
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...
- java中集合的扩容
对于Java中的各种集合类,根据底层的具体实现,小结了一下大致有3种扩容的方式: 1.对于以散列表为底层数据结构实现的,(譬如hashset,hashmap,hashtable等),扩容方式为当链表数 ...
随机推荐
- Win10 UWP开发实现Bing翻译
微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...
- jQuery笔记总结
来源于:http://blog.poetries.top/2016/10/20/review-jQuery/ http://www.jianshu.com/p/f8e3936b34c9 首先,来了解一 ...
- BZOJ 1861: [Zjoi2006]Book 书架
1861: [Zjoi2006]Book 书架 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 1290 Solved: 740[Submit][Stat ...
- 【BZOJ-2476】战场的数目 矩阵乘法 + 递推
2476: 战场的数目 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 58 Solved: 38[Submit][Status][Discuss] D ...
- 【poj1739】 Tony's Tour
http://poj.org/problem?id=1739 (题目链接) 题意 给出一个n*m的地图,有些是障碍.问从左下角走遍所有非障碍格子一次且仅一次最终到达右下角的路径方案数. Solutio ...
- MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- Linux 内核数据结构:Linux 双向链表
Linux 内核提供一套双向链表的实现,你可以在 include/linux/list.h 中找到.我们以双向链表着手开始介绍 Linux 内核中的数据结构 ,因为这个是在 Linux 内核中使用最为 ...
- GPS模块数据放入谷歌地图显示,不准
GPS 串口读出的是 DDMM.MMMM格式 一般上位机是 DD.DDDDDD°或 DD°MM'SS" 格式, 这两种都可以在 GE 里直接输入 举例说明: 3147.8749 (示例,经纬 ...
- 面试题目——《CC150》高等难题
面试题18.1:编写一个函数,将两个数字相加.不得使用+或其他算数运算符. package cc150.high; public class Add { public static void main ...
- Python之路【第十七篇】Django进阶篇
规范 确立规范的好处: 代码可读性高 方便代码的定位极其查找 为以后代码扩容带来便利 场景: 在多个APP的场景下,单个app的URL函数功能较多的时候,我们可以通过以下方法来解决. 把Views写成 ...