java中集合概念

     2022-03-23     514

关键词:

1.集合是储存对象的,长度可变,可以封装不同的对象

2.迭代器: 其实就是取出元素的方式(只能判断,取出,移除,无法增加)

                就是把取出方式定义在集合内部,这样取出方式就可以直接访问集合内部的元素,那么取出方式就被定义成了内部类.

二每一个容器的数据结构不同,所以取出的动作细节也不一样.但是都有共性内容判断和取出,那么可以将共性提取,这些内部类都符合一个规则Iterator

Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}

另一种是

for(Iterator it = it.iterator(); it.hasNext();){
System.out.printin(it.next());}

Collection:

(1).List:元素是有序的,元素可以重复.因为改集合体系有索引.

    !--ArrayList:底层的数据结构使用的是数组结构 ,特点:查询速度快,但是增删慢.线程不同步

    !--LinkedList:底层使用的是;链表数据结构,特点:增删速度快,查寻速度慢.   

    !--Vector:底层的数据结构使用的是数组结构 ,.线程同步,速度慢,被ArrayList替代l

    list:特有方法,凡是可以操作角标的方法都是该体系特有的方法

增:add(index,element);   addAll(index,Collection);

删:remove(index);

改:set(index,element);

查:get(index);   subList(from,to);  ListIterator();(重点)

注意:判断同一对象,equals方法

public boolean equals(Object obj){

if(!(obj instanceof Person))

return false;
Person p=new Person();

return this.name.equals(p.name)&&this.age==p.age;

}

 

(2). Set:元素是无序的(元素存入和取出的顺序是不一定一致的),不可以重复

    !--HashSet:底层数据结构是哈希表

        HashSet使如何保证元素唯一性的呢?

        是通过元素的两个方法,hashcode和equals来完成

        如果元素的HashCode相同才会判断equals是否为true,反の,不会调用

        对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法

    !--TreeSet:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.toArray()方法:是遍历用的(把集合转变为数组)

public class ToArray {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
 
Object[] obj=c.toArray();
for(int x=0;x < obj.length;x++){
System.out.println(obj[x]);
}
}
}
1.1asList()方法,把数组转变为集合
//定义一个数组
//String[] s={"hello","world","java"};
//List<String> list=Arrays.asList(s);
//直接引用
List<String> list=Arrays.asList("hello","world");
for(String s1:list){
System.out.println(s1);
}
注意:虽然他可以把数组转变成集合,但是本质是数组,所以他的长度不能改变,不能增删
2.数组长度是length方法,字符串的长度是length(),集合求长度的方法是size.

3. Iterator迭代器是集合的特有遍历方法

while方法:(习惯用法)

Iterator it=list.iterator();//list是集合
while(it.hasNext()){ //判断是否有下一个数据
System.out.println(it.next());
}
for循环方法:(效率高,it用完就是垃圾)
for(Iterator it=c.iterator();it.hasNext();){
System.out.println(it.next());
}
注意:不能连续it.next(),使用一次就换一个对象

4.list集合特有的遍历方法:就是size和get()的结合

for(int x=0; x<list.size();x++){
System.out.println(list.get(x));
}
5.list特有的迭代器 
ListIterator<String> lit=list.listIterator();
while(lit.hasNext()){
System.out.println((String)lit.next());
}
while(lit.hasPrevious()){
System.out.println((String)lit.previous());
}
注意:ListIterator可以实现逆向遍历,但是必须现正向遍历,否则无意义
6.HashTable和HashMap的区别
HashTable:线程安全,效率低,不允许null建和null值.
HashMap:线程不安全,效率高,允许null建和null值.
7.Collection和Collections的区别?
    Collection:是单列集合的顶层接口,有子接口List和Set
    Collections:是针对集合操作的工具类,有对集合进行排序和二分查找的方法
8.二分查找找不到,返回  -(最大索引+1)
 
 
 




java中的集合

JAVA中集合,是java中的基础概念,今天接着跟讲课准备课件的机会,重新整理一下关于JAVA中的集合的概念。集合的概念java中的集合类是用来存放对象的集合相当于一个容器,里面包容着一组对象--容器类其中的每个对象作为集合... 查看详情

Java 9中集合的重载便利工厂方法有啥意义

】Java9中集合的重载便利工厂方法有啥意义【英文标题】:WhatisthepointofoverloadedConvenienceFactoryMethodsforCollectionsinJava9Java9中集合的重载便利工厂方法有什么意义【发布时间】:2017-06-1414:36:11【问题描述】:Java9附带conveniencefactorymethod... 查看详情

java中集合框架体系

集合的体系结构:  |--Collection(单列集合的根接口)    |--List(子接口):元素是有序的,元素可以重复。因为该集合体系有索引。      |--ArrayList:底层的数据结构使用的是数组结构。特点:查... 查看详情

首先java中集合类主要有两大分支

...序,去重,筛选等)都需要通过集合类来完成。首先java中集合类主要有两大分支:(1)Collection(2)Map先看它们的类图:(1)CollectionCollecti 查看详情

java中集合的一些初始化写法

List的初始化方法方法一List<Integer>list=newArrayList<Integer>(){{add(1);add(2);add(3);}};方法二Arrays.asList(1,1,2,3,4)Map的初始化方法Map<Integer,Integer>map=newHashMap<Integer,Integer>(){{put(1 查看详情

java中集合框架知识点的总结

在Java的学习中最早接触的保存批量数据的是数组,但是数组有一个缺陷是保存的数据的个数必须在创建数组的时候就确定下来。Java为我们提供给了更好的保存数据的方式就是使用集合框架,在这里介绍List,Set和Map三种... 查看详情

struts2中集合收集表单数据

收集表单的页面:1<formaction="listAction1!insert"method="post">2dog1:<inputname="ulist[0].dog.did"/>3<inputname="ulist[0].dog.dname"/><br>4dog2:<inputname="ulist[1].dog.did"/>5&l 查看详情

java——12个关于java中集合的面试题(代码片段)

文章目录:1.请问ArrayList、HashSet、HashMap是线程安全的吗?如果不是怎么获取线程安全的集合?2.ArrayList内部用什么实现的?2.1无参构造源码分析2.2有参构造源码分析(参数为容量)2.3有参构造源码分析࿰... 查看详情

hive中集合类型

Hive中集合类型创建表,集合是以-分割的数据文件加载数据查询数据查询数组中第一个字段再建一个表,使用map查看数据文件加载数据查询数据查询键值 创建表,struct类型查看准备的数据加载数据查询数据查询struct属性  查看详情

类中集合的 getter/setter 等价物

】类中集合的getter/setter等价物【英文标题】:Equivalentofgetters/settersforcollectionswithinaclass【发布时间】:2012-01-2409:37:52【问题描述】:我有一堂课如下:publicclassDocumentpublicList<DocumentSection>sections=newList<DocumentSection>();...各 查看详情

如何计算 Firestore 中集合下的文档数?

】如何计算Firestore中集合下的文档数?【英文标题】:HowtocountthenumberofdocumentsunderacollectioninFirestore?【发布时间】:2018-07-1002:54:15【问题描述】:我正在尝试获取CloudFirestore上存在的CollectionReference计数,我已尝试通过以下方式获... 查看详情

Xcode中集合视图的单元格未出现

】Xcode中集合视图的单元格未出现【英文标题】:CellsofUICollectionsViewinXcodeNotAppearing【发布时间】:2020-07-0509:32:08【问题描述】:我正在开发一个应用程序并设置一个UICollectionView。下面是UICollectionView所在视图控制器的代码:importU... 查看详情

如何确定 Python 中集合变量的大小?

】如何确定Python中集合变量的大小?【英文标题】:HowtodeterminethesizeofasetvariableinPython?【发布时间】:2019-12-0516:01:51【问题描述】:我的代码如下,表数据在set(cur)中捕获。有没有办法在linux/unix中找到这个变量占用的空间?(内... 查看详情

js中集合对象(arraymapset)及类数组对象的使用与对比

原文地址在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型。ES6引入了iterable类型,Array,Map,Set都属于iterable类型,... 查看详情

UI 测试中集合视图的错误单元格计数

】UI测试中集合视图的错误单元格计数【英文标题】:WrongcellscountforcollectionviewinUITests【发布时间】:2015-11-1219:36:03【问题描述】:我有一个像这样工作的集合视图的测试:functestDeleteItem()app.collectionViews.staticTexts["Item"].tap()app.butto... 查看详情

表视图行中集合视图的同步水平滚动

】表视图行中集合视图的同步水平滚动【英文标题】:Synchronizedhorizontalscrollingofcollectionviewsintableviewrows【发布时间】:2014-09-2221:27:25【问题描述】:我正在尝试在表格视图中同步所有集合视图中的滚动(请参见下面的图片链接)... 查看详情

python中集合的特点和注意点?

参考技术A集合的特点:1.不同元素组成(元素不能重复百)2.无序(集合元素的顺序和定义、添加的顺序不一致)3.集合中的元素必度须是不可变类型集合的注意点:1.定义一个集合,如果直接写my_set=,不添加数据,python解释器... 查看详情

javascript如何删除mongodb中集合的所有文档?(代码片段)

查看详情