7.30学习心得
1. 集合与数组的区别
(1)JAVA集合可以存储和操作数目不固定的一组数据,数组定义时就规定了大小;
(2)JAVA集合只能存放引用类型的数据,不能存放基本数据类型。
2. 在Java 2的Collections框架中,主要包括两个接口及其扩展和实现类:Collection接口和Map接口。
Collection接口存储一组对象,Map接口则存储一些关键字/值对。
3. JAVA集合主要分为三种类型
Set(集) List(列表) Map(映射)
List、Set、Map共同的实现基础是Object数组。
List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引来访问List中的元素,List中的元素可以是重复的。常用的有:LinkedList 和 ArrayList 。
Set中的对象不按特定的方式排序,并且没有重复对象,支持数学中的集合操作,如:交、并。常用的有:HashSet 。
Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象,提供按键对象查找值对象。Map没有继承于Collection接口。常用的有:HashMap 。
4. JAVA集合框架继承关系(了解)
5. Set 集合
Set 运用实例:
public static void main(String[] args) {
//声明set集合
Set<String> set = new HashSet<String>();
//添加数据
set.add("a");
set.add("b");
set.add("c");
//遍历查询
for (String str : set) {
System.out.println(str);
}
for(int i = 0; i < set.size(); i++)
{
System.out.println(set);
}
//删除数据
set.remove("a");
System.out.println(set);
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
set.add("a");
set.add("b");
set.add("c");
for (String str : set) {
System.out.println(str);
}
for(int i = 0; i < set.size(); i++)
{
System.out.println(set);
}
set.remove("a");
System.out.println(set);
}
6. Map 集合
Map 运用实例:
public static void main(String[] args) {
//声明Map集合
HashMap<String, String> map = new HashMap<String, String>();
//添加数据(前面是key(不可重复),后面是value)
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
//删除数据(根据key)
map.remove("2");
//遍历数据
//第一种
for(String str: map.keySet())
{
System.out.println(str+":"+map.get(str));
}
//第二种
for (Entry<String, String> entry : map.entrySet())
{
System.out.println(entry.getKey()+":"+entry.getValue());
}
//第三种
for(String string : map.values())
{
System.out.println(str);
}
//第一种方法的迭代器
Iterator<String> iteratorSet=map.keySet().iterator();
while(iteratorSet.hasNext())
{
String string=iteratorSet.next();
System.out.println(string+":"+map.get(string));
}
//第二种方法的迭代器
Iterator<Entry<String, String>> iterator=map.entrySet().iterator();
while(iterator.hasNext())
{
Entry<String, String> entry=iterator.next();
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
7. List 集合
ArrayList(数组类型),方便从中提取数据进行操作。若超出集合定义大小,许耗费0.75倍原有内存大小作为缓冲区,GC不能及时发现进行处理,造成不必要的内存浪费。
LinkedList(链式类型),任意找地方插入数据,用指针指向,方便存储数据。但是若想提取数据进行操作需要遍历全部数据,过于麻烦。
ArrayList 运用实例:
public static void main(String[] args) {
//声明ArrayList集合
List<String> list = new ArrayList<String>();
//添加数据
list.add("c");
list.add("b");
list.add("d");
list.add("a");
//遍历数据
for (String str: list) {
System.out.println(str);
}
for(int i=0; i<list.size(); i++)
{
System.out.println(list.get(i));
}
//删除数据
list.remove(2);
for(int i=0; i<list.size(); i++)
{
System.out.println(list.get(i));
}
}
LinkedList 运用实例:
public static void main(String[] args) {
//声明LinkedList集合
List<String> list = new LinkedList<String>();
//添加数据(字母顺序是按照ASCII码排序,数字从小到大排序)
list.add("吧");
list.add("吃");
list.add("啊");
//遍历数据
for (String str : list) {
System.out.println(str);
}
//删除数据
list.remove(1);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
8. 作业
1、创建一个List,在List 中增加N个工人,工人信息存储在Map中,基本信息如下:
姓名 年龄 工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
……
2、利用for 循环遍历,打印List 中所有工人的信息
3、利用迭代遍历,对List 中所有的工人信息进行遍历。
4、把所有人的姓名存储在Set中,遍历输出所有姓名。
public static void main(String[] args) {
List<Map<String, String>> list = new LinkedList<Map<String,String>>();
Map<String, String> map1 = new HashMap<String, String>();
Map<String, String> map2 = new HashMap<String, String>();
Map<String, String> map3 = new HashMap<String, String>();
map1.put("name","zhang3");
map1.put("age", "18");
map1.put("pay", "3000");
map2.put("name","li4");
map2.put("age","25");
map2.put("pay","3500");
map3.put("name","wang5");
map3.put("age","22");
map3.put("pay","3200");
list.add(map1);
list.add(map2);
list.add(map3);
for(int i = 0; i < list.size(); i++)
{
System.out.println("第" + (i+1) + "个人信息:");
System.out.println("name:" + list.get(i).get("name"));
System.out.println("age:" + list.get(i).get("age"));
System.out.println("pay:" + list.get(i).get("pay"));
}
System.out.println("---------------------------------");
Iterator<Map<String, String>> iterator = list.iterator();
while(iterator.hasNext())
{
Map<String, String> m = iterator.next();
System.out.println("学生信息:");
System.out.println("name:" + m.get("name"));
System.out.println("age:" + m.get("age"));
System.out.println("pay:" + m.get("pay"));
}
System.out.println("---------------------------------");
Set<String> set = new HashSet<String>();
set.add(map1.get("name"));
set.add(map2.get("name"));
set.add(map3.get("name"));
for (String str : set) {
System.out.println("name:" + str);
}
}
扩展:
开发环境:IDEA
分析了当前就业形势,多写代码,加油追赶吧。