美文网首页
Java集合

Java集合

作者: WhiteStruggle | 来源:发表于2020-03-07 07:32 被阅读0次

ArrayList

// 存储的数据有序,可重复,内部使用 数组 存储数据
ArrayList one = new ArrayList();
//放数据用add,一般存储相同类型的数据
one.add("零");
one.add("一");
one.add("二");
one.add("三");

ArrayList two = new ArrayList();
two.add("四");
two.add("五");
//指定索引位置,插入数据
one.add(4,"四——");

one.addALL(two);//获取two的数据,并不改变数据
for(int i=0; i<one.size(); i++)//通过遍历获取全部数据,用size()获取集合(容器)有多少个元素
System.out.println(one.get(i));//获取数据,用get方法获取索引,默认从0开始

//用get()方法获取的数据是Object类型,通过强制类型转换获取想要的数据类型,但必须与添加时的数据类型一样
//输出结果:零一二三四——四五

//通过索引删除 和 直接输入数据
one.remove("一");//删除数据
one.remove(0);

//conctains判断集合(容器)是否有此数据,是true反之false
System.out.println(one.contains("三"));

//集合(容器)转化为数组
Object[] oarray =one.toArray();
for(int i =0;i<oarray.length;i++)
   System.out.println(oarray[i]);
//输出结果:二三四——四五


//遍历器遍历数据
ArrayList on = new ArrayList();
on.add(0);
on.add(1);
on.add(2);
//Iterator.next()会遍历集合(容器)的数据
//按顺序输出,类似于指针++,当道达最后一个元素输出后,跳到下一个元素,而最后没有元素,会出现错误
//当指针到达最后一个元素时,之后没有数据,指针会指向一个空,因此next()会出现错误
//可以用hasnext()来判断是否与下一个元素
Iterator iterator = on.iterator();
while(iterator.hasnext())
{
    System.out.println(iterator.next());
}
//输出:123
//输出:二

//Object和for - each 遍历数据
for(Object o : on)
{
    System.out.println(o);
}

举例:

package 集合类;

import java.util.ArrayList;
import java.util.Iterator;

public class ArrayList_try 
{
    public static void main(String[] args) {
        ArrayList<String> a_list = new ArrayList<String>();
        a_list.add("小明");
        a_list.add("小华");
        a_list.add("小芳");
        a_list.add("小刚");
        for (int i = 0; i < a_list.size(); i++) 
        {
            System.out.println(a_list.get(i));
        }
//      判断是否有某个字符串
        if (a_list.contains("小明")) 
        {
            System.out.println("小茗同学");
            a_list.add("小茗同学");
        }
//      定义另一个集合
        ArrayList<String > t_List = new ArrayList<String>();
        t_List.add("pig");
        t_List.add("dag");
        t_List.add("cat");
//      将另一个集合的数据传递个第一个集合
        a_list.addAll(t_List);
//      在第五个后面填上数据
        a_list.add(5, "又又");
//      移除数据
        a_list.remove(3);
        a_list.remove("小明");
        System.out.println("\n");
//      遍历
//      方法一:
//      for (String o : a_list) 
//      {
//          System.out.println(o);
//      }
//      方法二:
        Iterator<String> iterator = a_list.iterator() ;
        {
            while(iterator.hasNext())
            System.out.println(iterator.next());
        }
    }
}

Vector类

//与ArrayList类似
Vector v= new Vector();
//add()
//get()
//remove()
/**
Vector与ArrayList主要区别:线程是否安全,Vector安全,ArrayList不安全
一般在多线程中使用Vector
*/
//遍历
for(Objcct o : v)
{
    System.out.println(o);
}

LinkedList类

//内部使用 引用 存储数据
//优势:可以方便的插入数据,删除数据
//声明——————与ArrayList相似
LinkedList ll = new LinledList();
//add()
ll.addFirst();//在集合(容器)到第一个位置添加数据
ll.addLast();//在集合(容器)最后添加数据
//遍历
for(Object o: ll)
{
    System.out.println(o);
}

HashSet


//哈希值
//声明
HashSet set = new HashSet();

//ArratList,Vector,LinkedList可添加重复数据,有序
//HashSet不能添加重复数据,会自动去重,且无序

TreeSet

//声明
TreeSet set = new TreeSet();
//与HashSet一样数据是无序的


HashMap 与 Hashtable

HashMap 与 HashTable 相似,HashMap线程不安全,HashTable线程安全

//声明
HashMap map = new HashMap();
//HashMap里保存的是   键值对
//number是要保存的值 ,可以重复——“钥匙”
//"lock"引号内是指向保存的值——“锁”,其不能重复,如果重复会把之前的值覆盖
//两者关系相当于锁与钥匙的关系
//map.put("lock",number)
// 获取值
map.get(" ");
//例如:
map.put("good",745);
map.put("good",521);
int a = map.get("good");//值为521,如果有两个名称一样,后面的覆盖前面已存在的

//遍历
//key.set()获取“锁”
for(Object o: map.keySet())
{
    System.out.println(o+"-"+map.get(o);
}

//values() 获取"钥匙"的值
for(Object value : map.values())
{
    System.out.println(value);
}

//containsKey()判断某个“锁”是否存在,返回布尔值,包含true,反之false
map.containsKey("bad");
//contiansValue() 判断某个“钥匙”是否存在

TreeMap

//与HashMap相似,存储结构不同
//put()
//get()
//keyset()
//values()
//containsKey()
//containsValue()

小结:

Collection——存储单个值
    List 可重复,有序
     ArrayList
     Vector
     LinkedList
    Set 不可重复,无序
     HashSet
     TreeSet

Map——存储键值对
   HashMap
   TreeMap
   HashTable

相关文章

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • 收藏夹

    博文 Java 集合:Java 集合学习指南 Java 集合:Java 集合源码剖析 HashMap:HashMa...

  • Java 集合框架_开篇

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • Java 集合框架_List

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • 9、java集合

    1、什么是java集合 java集合是用来存储多个数据引用的数据类型。 2、java集合分类 java集合类在ja...

  • 【集合框架】

    集合框架(怎么实现、适用场景) hash相关 Java集合框架 Java集合框架综述Java集合框架面试问题集锦 ...

  • Java基础——集合体系Map详解

    Java基础——集合体系Map详解 上文中我们了解了集合体系中的单列集合:Java基础——集合以及Java集合——...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

  • JavaSE集合类

    JavaSE集合类 概述 Java中集合类概述Java中数组与集合的比较Java中集合框架层次结构 Collect...

  • 集合系列(一):集合框架概述

    集合系列(一):集合框架概述 Java 集合是 Java API 用得最频繁的一类,掌握 Java 集合的原理以及...

网友评论

      本文标题:Java集合

      本文链接:https://www.haomeiwen.com/subject/bsmfdhtx.html