java集合.docx

上传人:b****7 文档编号:16015542 上传时间:2023-07-09 格式:DOCX 页数:10 大小:17.19KB
下载 相关 举报
java集合.docx_第1页
第1页 / 共10页
java集合.docx_第2页
第2页 / 共10页
java集合.docx_第3页
第3页 / 共10页
java集合.docx_第4页
第4页 / 共10页
java集合.docx_第5页
第5页 / 共10页
java集合.docx_第6页
第6页 / 共10页
java集合.docx_第7页
第7页 / 共10页
java集合.docx_第8页
第8页 / 共10页
java集合.docx_第9页
第9页 / 共10页
java集合.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

java集合.docx

《java集合.docx》由会员分享,可在线阅读,更多相关《java集合.docx(10页珍藏版)》请在冰点文库上搜索。

java集合.docx

java集合

packagecn.itcast.list;

importjava.util.HashSet;

importjavax.print.attribute.HashAttributeSet;

/*

集合:

存储对象数据的集合容器。

单例集合

----------|Collection单例集合的根接口

----------------|List如果是实现了List接口的集合类,具备的特点:

有序,可重复。

-------------------|ArrayListArrayList底层是使用了Object数组实现的。

特点:

查询速度快,增删慢。

-------------------|LinkedListLinkedList底层是使用了链表数据结构实现的。

特点:

查询速度慢,增删快

-------------------|Vector底层是使用了Object数组实现的,实现原理与ArrayList是一致的,但是是线程安全的,操作效率低。

----------------|Set如果是实现了Set接口的集合类,具备的特点:

无序,不可重复。

-------------------|HashSet底层是使用了哈希表实现的。

特点:

存取速度快。

HashSet存储元素的原理:

往hashSet添加元素的时候,首先会调用元素的hashCode方法得到元素的哈希码值,然后把哈希码值经过运算算出该元素存在哈希表中的位置。

情况1:

如果算出的位置目前还没有存在任何的元素,那么该元素可以直接添加到哈希表中。

情况2:

如果算出的位置目前已经存在其他的元素,那么还会调用元素的equals方法再与这个位置上的元素比较一次。

如果equals方法返回的是true,那么该元素被视为重复元素,不允许添加。

如果equals方法返回的是false,那么该元素也可以被添加。

------------------|TreeSet底层是使用了红黑树(二叉树)数据结构实现的。

特点:

对集合中的元素进行排序存储、。

TreeSet要注意的事项:

1.往TreeSet添加元素的时候,如果元素具备自然顺序的特点,那么TreeSet会根据元素的自然顺序特性进行排序存储。

2.往TreeSet添加元素的时候,如果元素不具备自然顺序的特点,那么元素所属的类就必须要实现Comparable接口,把比较的规则定义在CompareTo方法上。

3.往TreeSet添加元素的时候,如果元素不具备自然顺序的特点,那么元素所属的类就也没有实现Comparable接口,那么在创建TreeSet对象的时候必须要传入比较器对象。

比较器的定义格式:

class类名implementsComparator{

}

双列集合

----------|Map存储的数据都是以键值对的形式存在的,键可以不重复,值可重复。

-------------|HashMap底层也是使用了哈希表实现的。

-------------|TreeMap底层也是使用了红黑树数据结构实现的。

练习:

*/

classPerson{

intid;

Stringname;

publicPerson(intid,Stringname){

super();

this.id=id;

this.name=name;

}

@Override

publicinthashCode(){

returnthis.id;

}

@Override

publicbooleanequals(Objectobj){

Personp=(Person)obj;

returnthis.id==p.id;

}

@Override

publicStringtoString(){

return"编号:

"+this.id+"姓名:

"+this.name;

}

}

publicclassDemo1{

publicstaticvoidmain(String[]args){

HashSetset=newHashSet();

set.add(newPerson(110,"狗娃"));

set.add(newPerson(110,"狗娃"));

System.out.println("集合的元素:

"+set);

}

}

输出

集合的元素:

[编号:

110姓名:

狗娃]

遍历输出

Demo2

packagecn.itcast.list;

importjava.util.ArrayList;

importjava.util.HashMap;

importjava.util.HashSet;

importjava.util.Iterator;

importjava.util.Map.Entry;

importjava.util.Set;

publicclassDemo2{

publicstaticvoidmain(String[]args){

ArrayListlist=newArrayList();

//使用get方法遍历。

list.add("张三");

list.add("李四");

list.add("王五");

System.out.println("======get方式遍历=========");

for(inti=0;i

System.out.print(list.get(i)+",");

}

//使用迭代器注意:

迭代器在迭代的过程中不能使用集合对象修改集合中的元素个数。

如果需要修改要使用迭代器的方法进行修改,

System.out.println("\r\n======迭代器方式遍历=========");

HashSetset=newHashSet();

set.add("狗娃");

set.add("狗剩");

set.add("铁蛋");

/*Iteratorit=set.iterator();//获取到迭代器

while(it.hasNext()){

System.out.print(it.next()+",");

}

*/

for(Stringitem:

set){

System.out.print(item+",");

}

System.out.println("\r\n======entrySet方式遍历=========");

HashMapmap=newHashMap();

map.put("张三","001");

map.put("李四","002");

map.put("王五","003");

Set>entrys=map.entrySet();//

for(Entryentry:

entrys){

System.out.println("键:

"+entry.getKey()+"值:

"+entry.getValue());

}

}

}

======get方式遍历=========

张三,李四,王五,

======迭代器方式遍历=========

狗娃,铁蛋,狗剩,

======entrySet方式遍历=========

键:

李四值:

002

键:

张三值:

001

键:

王五值:

003

配置文件路径

packagecn.itcast.path;

importjava.io.File;

importjava.io.FileNotFoundException;

importjava.io.FileReader;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.Properties;

/*

如果经常会发生变化的数据我们可以定义在配置文件上。

比如说:

数据库的用户名与密码。

配置文件的路径应该如何写呢?

绝对路径:

一个文件的完整路径信息。

一般绝对路径是包含有盘符的。

绝对路径的缺陷:

因为绝对路径是有盘符开头的,有些系统是没有盘符的。

相对路径:

相对路径是相对于当前程序的路径。

当前路径就是执行java命令的时候,控制台所在的路径。

类文件路径:

类文件路径就是使用了classpath的路径找对应的资源文件。

如果需要使用到类文件路径首先先要获取到一个Class对象。

*/

publicclassDBUtil{

staticPropertiesproperties;

static{

try{

properties=newProperties();

//去加载配置文件/

Classclazz=DBUtil.class;

InputStreaminputStream=clazz.getResourceAsStream("/db.properties");//"/"代表了Classpath的路径。

getResourceAsStream该方法里面使用的路径就是使用了类文件路径。

properties.load(inputStream);

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

publicstaticvoidmain(String[]args){

System.out.println("当前路径:

"+newFile(".").getAbsolutePath());

System.out.println("用户名:

"+properties.getProperty("userName")+"密码:

"+properties.getProperty("password"));

}

}

硬编码

packagecn.itcast.path;

/*

以后的数据库的用户名与密码一般都会保存到properties(配置文件)

*/

publicclassDemo1{

//硬编码

staticStringuserName="root";

staticStringpassword="123";

publicstaticvoidmain(String[]args){

System.out.println("用户名:

"+userName+"密码:

"+password);

}

}

输出

用户名:

root密码:

123

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2