java面向对象编程集合边框_JAVA 面向对象 集合框架

1.Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中

如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象——可以使用Java集合框架

2.java集合框架包括接口、具体类、算法

接口:Collection:List(ArrayList,LinkedList)           Set(HashSet , TreeSet)

Map(HashMap , TreeMap)

具体类:

算法:Collections(提供了对集合进行排序,遍历等多种算法的实现)

3.Collection接口存储一组不唯一、无序的对象

List接口存储一组不唯一、有序(插入顺序)的对象

Set接口存储一组唯一、无序的对象

Map接口存储一组键值对象,提供key到value的映射(键不可以重复,值可以)

4.List接口的实现类

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高

List  list=new ArrayList();

使用<>泛型集合:

List=new ArrayList();

LinkedList采用链表存储方式。插入、删除元素时效率比较高

使用泛型集合更安全 ,且方法不需要进行强制类型转换

5.List接口常用方法

方法名 说明

boolean add(Object o) 在列表的末尾顺序添加元素,起始索引位置从0开始

void add(int index,Object o) 在指定的索引位置添加元素。索引位置必须介于0和列表中

元素个数之间

int size() 返回列表中的元素个数

Object get(int index) 返回指定索引位置处的元素。取出的元素是Object类型,使

用前需要进行强制类型转换

boolean contains(Object o) 判断列表中是否存在指定元素

boolean remove(Object o) 从列表中删除元素

Object remove(int index) 从列表中删除指定位置元素,起始索引位置从0开始

6.LinkedList的特殊方法

方法名 说明

void  addFirst(Object o) 在列表的首部添加元素

void  addLast(Object o) 在列表的末尾添加元素

Object  getFirst() 返回列表中的第一个元素

Object  getLast() 返回列表中的最后一个元素

Object  removeFirst() 删除并返回列表中的第一个元素

Object  removeLast() 删除并返回列表中的最后一个元素

7.Map接口常用方法

方法名 说明

Object put(Object key, Object val) 以“键-值对”的方式进行存储

Object get (Object key) 根据键返回相关联的值,如果不存在指定的键,返

回null

Object remove (Object key) 删除由指定的键映射的“键-值对”

int size() 返回元素个数

Set keySet () 返回键的集合

Collection values () 返回值的集合

boolean containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true

8.遍历Map方法

迭代器Iterator

增强for循环:语法 for(元素类型t 元素变量x:数组或集合对象){

引用了x的Java语句

}

9:Set特性:

确定性:对任意对象都能判定其是否属于某一集合

互异性:集合中每个元素都是无差异的(内容差异)

无序性:集合内的顺序无关

HashSet:基于散列函数集合,无序,不支持同步

Set   TreeSet :基于    对结构的集合,可排序,不支持同步

LinkedHashSet:基于散列函数和双何链表集合,可排序,不支持同步

10:HashSet 方法(无序)

Set    s=new HashSet();

Set    s  = new HashSet();

s.add();添加              s.size();       个数

s.remove();删除            s.clear();  清空所有元素

s.contains;  判断集合是否又该元素

Set1.retain All(Set2)         计算1和2 的交集

System.out.println("交集是"+Set1);

eg :  Setset1=new Hashset();

Set set2=new Hashset();

11:LinkedHashSet:(可排序的,元素插入顺序)

继承HashSet,也是基于HashMap实现,可容纳null元素,不支持同步

Set   s=new LinkedHashSet();

Set s=new LinkedHashSet();

泛型方法和Hashset 一致(add,clear,remove,size,contains,retainAll)

通过一个双向链表维护插入顺序

12:Tree Set 方法(可排序,按照存储对象从小到大顺序进行排序)

基于Tree Map 实现,不可有效null元素,不支持同步

Set  s=new Treeset();

Set  s  =new  TreeSet();

泛型方法(add,clear,remove,size,contians,retainAll)

根据compare     to  方法或指定 comparator排序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HDU - 2072 】单词数(字符串读入技巧,sstream大法,水题,字符串读入格式)

题干&#xff1a; lily的好朋友xiaoou333最近很空&#xff0c;他想了一件没有什么意义的事情&#xff0c;就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。 Input 有多组数据&#xff0c;每组一行&#xff0c;每组就是一篇小文章。每篇小文章都…

java生成world文件_HelloWorld.java文件如何创建?

原创HelloWorld.java文件如何创建&#xff1f;编辑:小丸子 来源:PC下载网时间:2017-10-17 19:55:54相信各位刚接触JAVA的新人都希望尽快编写出自己的第一个程序,今天PC下载网小编和你一起学习HelloWorld程序1.首先我们先点击“开始”—然后是“所有程序”—在然后是“附件”—记…

【HDU - 1251 】统计难题(字典树,求拥有公共前缀的字符串数量)

题干&#xff1a; Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). Input 输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是…

java 轮询请求接口_js调用轮询接口

##### 项目中遇到需要很多个需要轮询处理的接口&#xff0c;然后简单的封装了下&#xff0c;做个记录&#xff0c;以后用到类似的直接copy #####// polling-utils.js/*** descripting 轮询功能* param {String} type 请求类型* param {String} url 地址* param {Object} data 请…

【POJ - 2001 】Shortest Prefixes (字典树,查询重复前缀区间)

题干&#xff1a; A prefix of a string is a substring starting at the beginning of the given string. The prefixes of "carbon" are: "c", "ca", "car", "carb", "carbo", and "carbon". Note t…

mysql use index用法_MySQL中USE INDEX 和 FORCE INDEX

问题在一次生产环境排查性能问题时, 发现有个请求在一些用户的数据量比较大的情况下, 最高耗时差不多要3s. 而且还是一个轮询的请求.原因在排查问题时, 定位到是执行某条SQL时在用户的数据比较大的情况下, SQL执行耗时要1.5s.mysql> SELECT count(1)-> FROM-> cc_sess…

【AtCoder - 4244 】AtCoder Express 2 (区间dp 或 暴力枚举,思维)

题干&#xff1a; In Takahashi Kingdom, there is a east-west railroad and N cities along it, numbered 1, 2, 3, ..., N from west to east. A company called AtCoder Express possesses Mtrains, and the train i runs from City Li to City Ri (it is possible that L…

【HDU - 3068】最长回文(Manacher算法,马拉车算法求最长回文子串)

题干&#xff1a; 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 两组case之间由空行隔开(该空行不用…

java程序员面试需要英语吗_Java程序员和高级程序员面试30题(英语)

Java程序员和高级程序员面试30题(英语)* Q1. How could Java classes direct program messages to the system console, but error messages, say to a file?A. The class System has a variable out that represents the standard output, and the variable err that represe…

【HDU - 1867 】A + B for you again(KMP,next数组应用)

题干&#xff1a; Generally speaking, there are a lot of problems about strings processing. Now you encounter another such problem. If you get two strings, such as “asdf” and “sdfg”, the result of the addition between them is “asdfg”, for “sdf” is …

wifisetting.java_Wifi 笔记 | 启动流程

csd&#xff1a;csdn_of_coder/article/details/51541094aosp: Android OAndroid网络各个模式中&#xff0c;Wifi应该是目前最常用的一种网络方式了&#xff1b;下面就简单介绍下Android中Wifi的启动流程。当我在Setting菜单里点击打开Wifi时&#xff0c;调用的入口函数是WifiM…

【CodeForces - 589F】Gourmet and Banquet (贪心,思维,二分)

题干&#xff1a; A gourmet came into the banquet hall, where the cooks suggested n dishes for guests. The gourmet knows the schedule: when each of the dishes will be served. For i-th of the dishes he knows two integer moments in time ai and bi (in second…

java 调用动态链接库_JAVA技巧:JNative调用动态链接库问题(SOS)

动态链接库的方法如下&#xff1a;__declspec(dllexport) ret __stdcall rLachTran(const char *pc_trancode,const char *pc_clicode,const char *pc_orgcode,const char *pc_ttycode,const int i_brandid,const char *pc_reqstamp,const int i_reqseqno,const char *pc_svrip…

SPFA算法模板

简单的一个模板吧&#xff0c;留个底。如果要判负环的话&#xff0c;需要加一个cnt数组记录入队次数就可以了。 void spfa(int st) {memset(dis,INF,sizeof dis);queue<int> q;q.push(st);dis[st]0;vis[st]1;while(!q.empty()) {int cur q.front();q.pop();vis[cur]0;i…

js和php能生成一样的随机数_JavaScript_JS生成某个范围的随机数【四种情况详解】,前言: JS没有现成的函数,能 - phpStudy...

JS生成某个范围的随机数【四种情况详解】前言&#xff1a;JS没有现成的函数&#xff0c;能够直接生成指定范围的随机数。但是它有个函数&#xff1a;Math.random() 这个函数可以生成 [0,1) 的一个随机数。利用它&#xff0c;我们就可以生成指定范围内的随机数。而涉及范围的话…

【POJ - 3347 】Kadj Squares (计算几何,思维 或 扫描线)

题干&#xff1a; In this problem, you are given a sequence S1, S2, ..., Sn of squares of different sizes. The sides of the squares are integer numbers. We locate the squares on the positive x-y quarter of the plane, such that their sides make 45 degrees w…

按钮开关java代码,Android自定义实现开关按钮代码

我们在应用中经常看到一些选择开关状态的配置文件&#xff0c;做项目的时候用的是android的Switch控件&#xff0c;但是感觉好丑的样子子个人认为还是自定义的比较好&#xff0c;先上个效果图&#xff1a;实现过程&#xff1a;1.准备开关不同状态的两张图片放入drawable中。2.x…

java创建的zip没写入权限,java中的zip创建错误

我正在使用ZipOutputStream,FileOutputStream和FileInputStream.首先我创建了一个包含一个文件的文件夹它成功创建了.然后我尝试创建zip文件.动态地,它首次正确创建文件,但第二次,第三次在打开文件时出错.Error: zip [path/././file.zip] Cannot open The process cannot acces…

【qduoj - 夏季学期创新题】最长公共子串(水题暴力枚举,不是LCS啊)

题干&#xff1a; 描述 编写一个程序&#xff0c;求两个字符串的最长公共子串。输出两个字符串的长度&#xff0c;输出他们的最长公共子串及子串长度。如果有多个最长公共子串请输出在第一个字符串中先出现的那一个。 特别注意公共子串中可能包含有空格&#xff0c;但不计回车…

向量合并 matlab,MATLAB追加向量

如果有两个行向量 r1 和 r2 这两个行向量中各有 n 和 m 个元素&#xff0c;现在创建行向量 r 并将n和m个元素都放在行向量 r 中&#xff0c;通过附加这些载体&#xff0c;编写&#xff1a;r [r1,r2]通过追加这两个向量&#xff0c;向量r2的&#xff0c;也可以建立一个矩阵R&am…