javaee学习日记之java基础之集合类
2017-08-27 09:52
281 查看
List接口集合(有序,元素可重复)
(在迭代过程中不可修改集合,但是迭代器可以修改集合)
子类有不同实现,各有不同
ArrayList类:底层是数组,允许所有元素,包括null,修改对象慢,可以快速访问。
LinkedList类:底层是链表,修改对象快,访问慢。
Set接口集合(无序,没有重复元素(对应八大包装类型和String进行栈内存和内容判断,(其它对象就进行栈内存判断)))
(在迭代过程中不可修改集合,但是迭代器可以修改集合)
子类有不同实现,各有不同
HashSet类:底层是哈希表,通过哈希值和equals()确定唯一性
TreeSet类:底层是红黑树,有顺序。
List和Set有共同父接口Collection
Map接口集合(键值对)
子类有不同实现,各有不同
HashMap:基于哈希表实现,查找速度快,添加快
TreeMap:映射存在顺序。
(在迭代过程中不可修改集合,但是迭代器可以修改集合)
子类有不同实现,各有不同
ArrayList类:底层是数组,允许所有元素,包括null,修改对象慢,可以快速访问。
LinkedList类:底层是链表,修改对象快,访问慢。
package demo.cn.baidu; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class Test { public static void main(String[] args) { List<Integer> list = new LinkedList<>();//创建集合 list.add(1);//添加元素 list.add(2); list.add(3); list.add(4); for (int i = 0; i < list.size(); i++) {//获取集合长度 System.out.println(list.get(i));//通过索引获取值 } list.set(2, 5);//通过索引修改值 System.out.println("---------------"); Iterator<Integer> it = list.iterator();//迭代器 while (it.hasNext()) {//是否存在元素 System.out.println(it.next());//输出下一个元素(从0-(size()-1)) } list.set(0, 10); System.out.println("---------------"); for (int i : list) {//增强for底层是迭代器 System.out.println(i); } } }
Set接口集合(无序,没有重复元素(对应八大包装类型和String进行栈内存和内容判断,(其它对象就进行栈内存判断)))
(在迭代过程中不可修改集合,但是迭代器可以修改集合)
子类有不同实现,各有不同
HashSet类:底层是哈希表,通过哈希值和equals()确定唯一性
TreeSet类:底层是红黑树,有顺序。
package demo.cn.baidu; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Test { public static void main(String[] args) { Set<Integer> set = new HashSet<>();//创建集合 set.add(5);//添加元素 set.add(5); Iterator<Integer> it = set.iterator();//迭代器 while(it.hasNext()){//是否存在元素 System.out.println(it.next());//得到元素 } System.out.println("-----------------"); Set<String> sets = new HashSet<>(); String s1 = new String("Hello"); String s2 = new String("Hello");//改变地址 String s3 = "Hello"; sets.add(s1); s1 = "Java";//改变内容 sets.add(s1); sets.add(s2); sets.add(s3); for(String s:sets){ System.out.println(s); } System.out.println("-----------------"); Set<Tool> set2 = new HashSet<>(); Tool tool = new Tool("Tom",25); Tool tool2 = new Tool("Tom",25);//改变地址 set2.add(tool); set2.add(tool2); tool.setName("Jom");//改变内容 tool.setAge(28); set2.add(tool); System.out.println(set2.size()); } }
List和Set有共同父接口Collection
Map接口集合(键值对)
子类有不同实现,各有不同
HashMap:基于哈希表实现,查找速度快,添加快
TreeMap:映射存在顺序。
package demo.cn.baidu; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, String> map = new HashMap<>();//创建 map.put("Tom", "man");//添加 map.put("Jim", "woman"); map.put("Zmi", "woman"); for (Map.Entry<String, String> ent : map.entrySet()) { System.out.println(ent.getKey() + ":" + ent.getValue()); } System.out.println("-------------------"); for (String s : map.keySet()) { System.out.println(s + ":" + map.get(s));//获取键,通过键获取值 } System.out.println("-------------------"); Iterator<Map.Entry<String, String>> ent = map.entrySet().iterator(); while (ent.hasNext()) { Map.Entry<String, String> entry = ent.next(); System.out.println(entry.getKey() + ":" + entry.getValue()); } } }
相关文章推荐
- 黑马程序员Java基础加强41-48学习日记
- 黑马程序员_java学习日记_Java基础小知识学习整理
- 黑马程序员-------学习日记Java基础 第四天
- JAVA基础第五天学习日记_面向对象开发思想、匿名对象、封装、私有、构造函数
- 黑马程序员Java基础加强49-56学习日记
- 黑马程序员Java基础加强9-16学习日记
- 黑马程序员-JAVA学习日记-java编程基础1
- JAVA基础第三天学习日记_循环语句、函数、数组
- JAVA基础第四天学习日记_数组
- Java基础第十三天学习日记_String字符串
- Java基础第十二天学习日记_线程、线程的同步、线程间通讯
- java软件工程师培训学习日记------java语言核心基础之认识JAVA
- Java基础第十天学习日记_包、jar包
- JAVA基础第六天学习日记_static关键字、文档、静态代码块、单例开发模式
- java软件工程师培训学习日记------java语言核心基础之模式
- 黑马程序员-------学习日记Java基础 第三天
- Java基础第十一天学习日记_线程、同步、死锁
- 黑马程序员Java基础加强17-24学习日记
- JAVA基础第八天学习日记_多态
- 黑马程序员Java基础加强33-40学习日记