Java-集合-list

1.集合(实现功能较多,数据的集合)Collection

集合:不定长的同一类数据的集合    

优点:可以自动扩容

*****数组不可以扩容



package com.neusoft.test7;

import java.util.Arrays;

public class Test1 {

public static void main(String[] args) {

//数组   同一数据类型的数据集合,定长

// TODO Auto-generated method stub

//数组装载多个数据

//数组是定长的  不能自动扩容

//*****  所谓的数组扩容其实就是 新分配一块内存地址

int[] a= {12,23,2,54,16};

System.out.println("old"+a.length);

System.out.println("old"+a);

int[] b=new int[5];//{0,0,0,0,0}

// System.out.println(b.length);

a=Arrays.copyOf(a, 10);

System.out.println("new"+a.length);

System.out.println("new"+a);

//数组中的拷贝方法  不能实现扩容

//a 是源数组  0  是源数组的开始位置  b 是目标数组  0 是目标数组的开始位置  5 是元素拷贝个数

// System.arraycopy(a, 0, b, 1, 4);//把a数组拷贝到b数组

// for(int n:a) {

// System.out.println(n);

// }

// for(int n:b) {

// System.out.println(n);

// } 

}

}







package com.neusoft.test7;

import java.util.ArrayList;

import java.util.Collection;

public class Test2 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Collection c1=new ArrayList();//集合可以自动扩容

//因为:Object 是所有类的超类 

//所以:Object 也是包装数据类型的超类

//因为:基本数据类型可以自动装箱

//所以:int 10------>integer 数据类型的10

//又因为:Object 也是包装数据类型的超类

//所以:integer 10 相当于变为了  Object类型的父类引用指向子类对象的形式

//在所以:10可以放到方法当中的参数当中

c1.add(10);//Object

c1.add(20);

c1.add(30);

c1.add(40);

c1.add(50);

c1.add(60);

c1.add(70);

c1.add(80);

c1.add(90);

System.out.println("c1.size()="+c1.size());//长度

Object[] o1arry=c1.toArray();

//遍历object 集合

for(Object o:o1arry) {

//在System.out.println当中输出一个类相当于自动调用类当中的toString方法

//因为有了父类引用指向子类对象的形式  Object o=new Integer();

//所以  调用toString方法时发生重写 实际调用的是Integer当中的toString方法  即输出了o

System.out.println(o);

}

Object o1=new Object();

//输出类名及地址值

System.out.println(o1);// 地址值

}

}


2.list 接口

优点:有序,可重复


package com.neusoft.test7;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class Test3 {

public static void main(String[] args) {

// TODO Auto-generated method stub

//list 接口 <> 泛型 存取顺序一致------有序  可重复 

List<String> list1=new ArrayList<String>();//父类的引用指向子类对象  :多态

list1.add("古天乐");//0  *********** 增加新元素

list1.add("渣渣辉");//1

list1.add("陈小春");//2

list1.add("刘烨");//3

list1.add("刘烨");

list1.add("刘烨");

list1.add("刘烨");

list1.add("孙红雷");//4

list1.add("林子聪");//5

list1.remove(1);//*********************删除

list1.set(1, "哈哈哈");//*******根据下标进行修改

System.out.println(list1.indexOf("哈哈哈"));//******查询  第一次出现的指定元素的索引

// System.out.println(list1);

//如何遍历集合

//1.list集合转为数组  再遍历数组

Object[] o=list1.toArray();//把集合变成数组

for(Object n:o) {

System.out.println(n);

}

System.out.println("*****************");

//2.使用迭代器(遍历器) 进行遍历输出 *****常用

Iterator<String> i1=list1.iterator();

while(i1.hasNext()) {//hasNext 判断但不移动指针

String a=i1.next();//next 移动指针

System.out.println(a);

}

//数组要有统一的数据类型

//     Integer[] a=new Integer[10];//包装数据类型

//     String[] b=new String[10];//引用数据类型

//     a[0]=1;

//     b[0]="aaa";

//     System.out.println(a[0]);

//     System.out.println(b[0]);

//     //int ---->String

//     b[0]=1+"";

//     Object[] c=new Object[10];

//     c[0]=111;

//     c[1]="aaa";

//     System.out.println(c[0]);

//     System.out.println(c[1]);

}

}









package com.neusoft.test7;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import java.util.ListIterator;

public class Test3 {

public static void main(String[] args) {

// TODO Auto-generated method stub

//list 接口    <> 泛型  存取顺序一致------有序      可重复

List<String> list1=new ArrayList<String>();//父类的引用指向子类对象:多态

list1.add("古天乐");//0  *********** 增加新元素

list1.add("渣渣辉");//1

list1.add("陈小春");//2

list1.add("刘烨");//3

list1.add("刘烨");

list1.add("刘烨");

list1.add("刘烨");

list1.add("孙红雷");//4

list1.add("林子聪");//5

list1.remove(1);//*********************删除

list1.set(1, "哈哈哈");//*******根据下标进行修改

System.out.println(list1.indexOf("哈哈哈"));//******查询  第一次出现的指定元素的索引

// System.out.println(list1);

//如何遍历集合

//1.list集合转为数组  再遍历数组

Object[] o=list1.toArray();//把集合变成数组

for(Object n:o) {

System.out.println(n);

}

System.out.println("*****************");

//2.使用迭代器(遍历器) 进行遍历输出    *****常用    listIterator与Iterator区别

ListIterator<String> i1=list1.listIterator();

while(i1.hasNext()) {//hasNext 判断但不移动指针

// list1.add("新增");  //当前更改异常  报错  ***a.在迭代器迭代的时候  不能通过list1来修改数据

// list1.remove(1);  //当前更改异常  报错

String a=i1.next();//next 移动指针

if(a=="孙红雷") {

// i1.remove();    //b.使用迭代器来进行删除操作

i1.add("韩红");  //c.Iterator  没有add方法  在操作list集合时想要使用add方法需要使用ListIterator

}

System.out.println(a);

}

System.out.println(list1);

//数组要有统一的数据类型

//     Integer[] a=new Integer[10];//包装数据类型

//     String[] b=new String[10];//引用数据类型

//     a[0]=1;

//     b[0]="aaa";

//     System.out.println(a[0]);

//     System.out.println(b[0]);

//     //int ---->String

//     b[0]=1+"";    

//     Object[] c=new Object[10];

//     c[0]=111;

//     c[1]="aaa";

//     System.out.println(c[0]);

//     System.out.println(c[1]);

}

}





3.LinkedList(链表结构   双链表形式)

arraylist(数组结构) 初始值分配空间为10   如果装满的话则按照1.5倍进行扩容  

arraylist 查找快  ,增删慢

linkedlist查找慢  ,增删快





package com.neusoft.test7;

import java.util.Iterator;

import java.util.LinkedList;

import javax.annotation.processing.SupportedSourceVersion;

public class Test4 {

public static void main(String[] args) {

// TODO Auto-generated method stub

LinkedList list1=new LinkedList();

// list1.add("古天乐");

// list1.add("渣渣辉");

// list1.add("陈小春");

// list1.add("刘烨");

// list1.add("刘烨");

// list1.add("刘烨");

// list1.add("刘烨");

// list1.add("孙红雷");

// list1.add("林子聪");

list1.push("aaa");//push 入栈

list1.push("bbb");

list1.pop();//pop 出栈

list1.push("ccc");

list1.push("ddd");

list1.pop();

// System.out.println(list1.getLast());

// list1.pop();

// list1.pop();

Iterator i1=list1.iterator();

while(i1.hasNext()) {

System.out.println(i1.next());

}

}

}





//封装一个方法    用栈  实现  队列的功能

package com.neusoft.test7;

import java.util.Iterator;

import java.util.LinkedList;

import java.util.List;

public class Test5 {

LinkedList list1=new LinkedList();

LinkedList list2=new LinkedList();

public static void main(String[] args) {

// TODO Auto-generated method stub

Test5 t=new Test5();

t.put("aaa");

t.put("bbb");

t.put("ccc");

System.out.println(t.get());

System.out.println(t.get());

System.out.println(t.get());

System.out.println(t.get());

}

public void put (Object o) {//向list1栈  push元素

list1.push(o);

}

public Object get() {

for(int i=0;!isEmpty(list1);i++) {

list2.push(list1.pop());

}

if(!isEmpty(list2)) {

return list2.pop();

}else {

return "对不起,已经空了!!!";

}

}

//判断list 是否为空的方法 如果为空返回true  如果不为空返回false

public boolean isEmpty(List list) {

if(list.size()<=0) {

return true;//为空

}else {

return false;//不为空

}

}

}


4.Iterator接口方法(遍历集合)




5.Vector(与Arraylist相似)

*****也具有Iterator方法

package com.neusoft.test7;

import java.util.Enumeration;

import java.util.Vector;

public class Test6 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Vector<String> v=new Vector<String>();

v.addElement("aaa");

v.addElement("bbb");

v.addElement("ccc");

Enumeration<String> e=v.elements();//枚举类

while(e.hasMoreElements()) {

String s=e.nextElement();

System.out.println(s);

}

}

}


6.Collections类(操作集合的类 ,该类中提供许多方法,集合的工具类)

 collections与collection没有任何关系

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

推荐阅读更多精彩内容