Java集合

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容

  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,944评论 0 13
  • 原文地址 Java集合 Java集合框架:是一种工具类,就像是一个容器可以存储任意数量的具有共同属性的对象。 Ja...
    gyl_coder阅读 979评论 0 8
  • 一、集合与Map 接口说明 1. Collection接口Collection是最基本的集合接口,一个Collec...
    木有粗面_9602阅读 355评论 0 1
  • 一、Java集合框架概述 集合可以看作是一种容器,用来存储对象信息。所有集合类都位于java.util包下,但支持...
    风平浪静如码阅读 567评论 0 1
  • 一、集合简介 1.1集合定义 是容器,存储任意数量的具有共同属性的对象 1.2集合作用 (1)在类的内部,对数据进...
    这一刻_776b阅读 236评论 0 0