Java中集合类

简介: Java中集合类

集合类介绍


数组无法存放映射关系的数据,集合类可以。(集合类又称为容器类)


数组中可以放基本类型与对象。

集合中只能放对象。


集合类都被放在java.util中


Java集合分为Collection和Map



1、List集合


基本操作:


1.索引查看


get(index) 进行索引


2.添加对象


add()


3.获得对应值首次出现位置以及最后出现位置


indexof("")

lastindexof("")


4.获取两下标之间范围


subList(int lindex,int rindex)



ArrayList类


是有序的,可重复的集合,有顺序的索引,并且可以通过索引访问位置,允许重复值的


缺点:插入或删除速度慢。(类似于数组)


具体操作:


1.三种初始化:


1.ArrayLsit list1=new ArrayList();

2.ArrayLsit list1=new ArrayList(5); 确定容量

3.ArrayLsit list1=new ArrayList(list2); a为集合或数组


2.添加


add() 插入对应类型的数据


3.移除


1.remove(index) 删除对应下标

2.remove(“a”) 删除对应内容


4.容量


size() 得到容器中容量


5.替换


set(int index,“a”) 第一个参数是位置,第二个是插入的内容


6.清空


clear() 进行对容器清空


7.索引查看


get(index) 对下标进行索引



LinkedList类


链表结构

优点:插入和删除速度快


1.创建对象


LinkedList< String> list = new LinkedList< String>


2.索引查看


get(index) 下标进行索引


3.获取第一个或者最后一个要查找内容


getfirst()

getlast()


4.加入到首部或者加入到尾部


addfirst()

addlast()


5.移除首部或者尾部


removefirst()

removelast()





2、Set集合


可以依次把多个对象放进Set集合中,这个集合不能记住元素的添加顺序,不包含重复数,最多只包含一个null



HashSet类


使用的是Hash算法,有很好的存取与查找性能


特点:


1.顺序可能发生变化,不与添加顺序同步

2.不是同步的,如果多个线程同时访问或修改一个Hashset,通过代码保证其同步

3.集合可以使null


用hashcode()hashcode 值,根据值来决定它的位置

若两个equals相等,hascode不相等,会存储不同位置

若两项都相等,两个元素相同


1.创建实例


HashSet hs=new Hashset()

HashSet< String> hss=new HashSet< String>();


2.添加


add()


3.使用迭代器进行遍历


Iterator< String>it=hs.iterator(); //需要使用iterator()来得到初始位置,并且应当是相同类型的

it.hasnext() //检查序列中是否还有元素

it.next() //返回下一个元素


while(it.hasnext())
{
  System.out.println(it.next());  //进行遍历
}



TreeSet类

实现set接口和sortedset接口,并且它是自然排序的


其中sortedset是set的子接口


使用Comparable接口排序


1.创建实例


Treeset< Double> scores=new Treeset< Double>();


2.返回第一个,最后一个


first();

last();


3.移除第一个或者最后一个


poolfirst()

poollast()


遍历和上面相同


4.是否存在


contains()


5.返回一个集合


subset() //范围之间

headset() //输入的值之前

tailset() //输入的值之后


如:SortedSet< Double> score2=score.tailset(90) //就是返回在90之后的


6.查询其中的值,通过索引


score2.toArray //获取数组

score2.toArray[i] //进行索引


7.求其中长度


score2.toArray().length



3、Map集合

HashMap

使用的是哈希算法存取键值对。

其中键为key,值为value


1.创建实例


HashMap users = new HashMap();

HashMap< String,int> users = new HashMap();


2.存入类中


users.put(字符串,整型) //这里存入其中的只是上面1的第二种


3.判断是否包含指定的key


users.containskey(字符串) //返回的是true,false


4.键和值都可以作为一个集合


键:users.keyset()

值:users.values()

注释:可以使用for each来遍历,但是JDK版本需要1.5之后


5.获取迭代器(键值对 对象)中的键和值


首先需要迭代器 Iterator> entries = map.entrySet().iterator();

int key=entries.getkey()

int value=entries.getvalue()


拓展:其中的Entry是Map集合中的键值对 对象 通过键值对可以访问这个键值对中的key或者value


四种遍历


1.在 for 循环中使用 entries 实现 Map 的遍历(最常见和最常用的)


for (Map.Entry<String, String> entry : map.entrySet()) {
        String mapKey = entry.getKey();
        String mapValue = entry.getValue();
        System.out.println(mapKey + ":" + mapValue);
    }


2.使用 for-each 循环遍历 key 或者 values,一般适用于只需要 Map 中的 key 或者 value 时使用。性能上比 entrySet 较好。


// 打印键集合
for (String key : map.keySet()) {
    System.out.println(key);
}
// 打印值集合
for (String value : map.values()) {
    System.out.println(value);
}


3.使用迭代器(Iterator)遍历


Iterator<Entry<String, String>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
    Entry<String, String> entry = entries.next();
    String key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key + ":" + value);
}


4.通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作。


for(String key : map.keySet()){
    String value = map.get(key);
    System.out.println(key+":"+value);
}


TreeMap


可以对键对象进行排序

其余的大致操作与HashMap相似可以看上方


相关文章
|
17小时前
|
Java 调度
Calendar类在Java中的应用
Calendar类在Java中的应用
|
17小时前
|
Java
Java中Integer类的应用
Java中Integer类的应用
|
1天前
|
存储 安全 Java
Java集合框架详解
Java集合框架详解
|
2天前
|
Java
深入了解Java中的BigDecimal类及其方法
深入了解Java中的BigDecimal类及其方法
9 1
|
2天前
|
安全 Java
如何在Java中处理并发集合
如何在Java中处理并发集合
|
3天前
|
存储 Java
心得经验总结:浅谈Java类中的变量初始化顺序
心得经验总结:浅谈Java类中的变量初始化顺序
|
2天前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
9 0
|
2天前
|
安全 NoSQL Java
探索Java Optional类:构造器、成员变量与方法
探索Java Optional类:构造器、成员变量与方法
4 0
|
2天前
|
存储 Java API
Java基础之String类
Java的String类是引用类型,用于创建和操作字符串。字符串对象在`java.lang`包中,不可变。创建方式包括字面量和`new`关键字。字符串池存储字符串常量,避免重复。比较字符串用`equals()`(区分大小写)和`equalsIgnoreCase()`(不区分大小写)。`length()`返回长度,`concat()`或`+`拼接,`substring()`截取,`indexOf()`和`lastIndexOf()`查找,`replace()`替换,`split()`分割。这些是常用的字符串API。
7 0
|
2天前
|
Java
Java基础之String类
Java基础之String类
8 0