标签:种类 sub nsvalue scores 决定 集合 随机 常用方法 面向对象语言
package com.zhangguo.chapter8.d1; import java.util.ArrayList; import java.util.List; public class C1 { public static void main(String[] args) { //数组 int[] scores=new int[100]; //scores[200]=99; //泛型集合 List<Integer> marks1=new ArrayList<Integer>(); marks1.add(98); marks1.add(89); marks1.add(59); System.out.println(marks1.get(2)+1); //.... //非泛型类型 List marks2=new ArrayList(); marks2.add(98); marks2.add(9.8); marks2.add("九十九"); //非泛型有安全隐患 System.out.println(Integer.parseInt(marks2.get(2)+"")+1); } }
package com.zhangguo.chapter8.d1; import java.util.ArrayList; import java.util.List; public class C1 { public static void main(String[] args) { //数组 int[] scores=new int[100]; //scores[200]=99; //泛型集合 List<Integer> marks1=new ArrayList<Integer>(); marks1.add(98); marks1.add(89); marks1.add(59); System.out.println(marks1.get(2)+1); //.... //非泛型类型 List marks2=new ArrayList(); marks2.add(98); marks2.add(9.8); marks2.add("九十九"); //非泛型有安全隐患 System.out.println(Integer.parseInt(marks2.get(2)+"")+1); } }
boolean add(Object obj):向集合中添加一个元素
boolean addAll(Collection c):向集合中添加一个集合的元素
void clear():删除集合中的所有元素
boolean remove(Object obj):从集合中删除指定的元素
boolean removeAll(Collection c):从集合中删除一个指定的集合元素
boolean isEmpty():判断集合是否为空。
boolean contains(Object obj):判断集合中是否存在指定的元素。
boolean containsAll(Collection c):判断集合中是否存在指定的一个集合中的元素。
Iterator iterator():就是用来获取集合中每一个元素。
int size():获取集合中的元素个数
boolean retainAll(Collection c):判断两个集合中是否有相同的元素
Object[] toArray():把集合变成数组。
package com.zhangguo.chapter8.d1; import java.util.*; public class ListDemo1 { public static void main(String[] args) { //定义list1集合,指定存放的数据类型,只能是引用类型 List<Integer> list1=new ArrayList(); //添加单个元素 Integer n=88; list1.add(98); list1.add(99); list1.add(60); list1.add(n); //获得单个元素 int e1=list1.get(0); //98 System.out.println("list1的第2个元素值为:"+list1.get(1)); //获得集合长度 System.out.println("长度为:"+list1.size()); //遍历1 for (Integer item : list1) { System.out.println("遍历:"+item); } //遍历2 for (int i = 0; i < list1.size(); i++) { System.out.println(i+"="+list1.get(i)); } //移除 //将下标为0的元素移除,当前面的元素移除时后面补上 list1.remove(0); System.out.println("list1的第1个元素值为:"+list1.get(0)); //指定要移除的对象,把集合中的60移除 list1.remove(n); //移除所有 list1.clear(); //获得集合长度 System.out.println("长度为:"+list1.size()); } }
结果:
ArrayList<String> arrayList = new ArrayList<String>(); arrayList.add("Tom"); arrayList.add("Jerry"); arrayList.add("Micky"); // 使用Iterator遍历元素 Iterator<String> it = arrayList.iterator(); while (it.hasNext()) { String str = it.next(); System.out.println(str); } // 在指定位置插入元素 arrayList.add(2, "Kate"); // 通过索引直接访问元素 for (int i = 0; i < arrayList.size(); i++) { System.out.println(arrayList.get(i)); } List<String> subList = new ArrayList<String>(); subList.add("Mike"); // addAll(Collection<? extends String> c)添加所给集合中的所有元素 arrayList.addAll(subList); // 判断是否包含某个元素 if (arrayList.contains("Mike")) { System.out.println("Mike is include in the list"); } LinkedList<String> linkedList = new LinkedList<String>(); linkedList.addAll(arrayList); // 获取指定元素 System.out.println(linkedList.get(4)); // 获取第一个元素 System.out.println(linkedList.getFirst()); // 获取最后一个元素 System.out.println(linkedList.getLast()); // 获取并删除第一个元素 System.out.println(linkedList.pollFirst()); // 获取,但不移除第一个元素 System.out.println(linkedList.peekFirst());
package com.zhangguo.chapter8139.d1; import java.util.*; public class Collection01 { public static void main(String[] args) { //定义一个集合,只能存Integer List<Integer> marks=new ArrayList<Integer>(); Integer k=75; //添加 marks.add(10); //0 marks.add(90); //1 marks.add(37); marks.add(k); marks.add(58); marks.add(77); //取值 System.out.println(marks.get(1)); //长度 System.out.println("个数:"+marks.size()); //遍历 System.out.println("遍历:"); for (Integer n : marks) { System.out.println(n); } //根据索引删除 marks.remove(3); //根据对象删除 marks.remove(k); Integer d=null; for (Integer j : marks) { if(j==90){ d=j; break; } } marks.remove(d); //修改 marks.set(0, 9); //将下标0对应的值修改为9 //循环 System.out.println("循环:"); for (int i = 0; i < marks.size(); i++) { System.out.println(marks.get(i)); } //删除所有 marks.clear(); System.out.println("个数:"+marks.size()); } }
Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。在Map中它保证了key与value之间的一一对应关系。也就是说一个key对应一个value,所以它不能存在相同的key值,当然value值可以相同。实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。字典(Dictionary)
以哈希表数据结构实现,查找对象时通过哈希函数计算其位置,它是为快速查询而设计的,其内部定义了一个hash表数组(Entry[] table),元素会通过哈希转换函数将元素的哈希地址转换成数组中存放的索引,如果有冲突,则使用散列链表的形式将所有相同哈希地址的元素串起来,可能通过查看HashMap.Entry的源码它是一个单链表结构。
HashMap<String, Integer> map = new HashMap<String, Integer>(); // 向Map中添加元素 map.put("Tom", 26); map.put("Jack", 18); map.put("Micky", 17); map.put("Kate", 15); // 根据Key获取Value System.out.println("Jack is " + map.get("Jack") + " years old"); // 移除 map.remove("Micky"); // 遍历Map for (Entry<String, Integer> entry : map.entrySet()) { System.out.println("name:" + entry.getKey() + " age:" + entry.getValue()); } // Key相同的元素将被覆盖 map.put("Jack", 19); // 根据Key获取Value System.out.println("Jack is " + map.get("Jack") + " years old"); // 判断是否包含某个Key if (map.containsKey("Tom")) { System.out.println(map.get("Tom")); } // 判断是否包含某个Value if (map.containsValue(26)) { System.out.println("The map include the value 26"); } // 判断map是否为空 if (!map.isEmpty()) { // 获取map大小 System.out.println("The map‘s size=" + map.size()); } // 获取Key的集合 for (String str : map.keySet()) { System.out.println(str); } TreeMap<String, Integer> treeMap = new TreeMap<String, Integer>(); treeMap.putAll(map); // 输出内容按照key值排序 for (Entry<String, Integer> entry : treeMap.entrySet()) { System.out.println("name:" + entry.getKey() + " age:" + entry.getValue()); // name:Jack age:19 // name:Kate age:15 // name:Tom age:26 } LinkedHashMap<String, Integer> linkedHashMap = new LinkedHashMap<String, Integer>(); // 向Map中添加元素 linkedHashMap.put("Tom", 26); linkedHashMap.put("Jack", 18); linkedHashMap.put("Micky", 17); linkedHashMap.put("Kate", 15); // 保持了插入的顺序 for (Entry<String, Integer> entry : linkedHashMap.entrySet()) { System.out.println("name:" + entry.getKey() + " age:" + entry.getValue()); // name:Tom age:26 // name:Jack age:18 // name:Micky age:17 // name:Kate age:15 }
//包 package com.zhangguo.chapter8.d2; import java.util.HashMap; import java.util.Map; //类 public class StudentClient { //方法 主方法 静态 数组 public static void main(String[] args) { Stu s1=new Stu("201701","张学友","男"); Stu s2=new Stu("201702","张汇美","女"); Stu s3=new Stu("201703","张卫健","男"); //创建一个Map集合 <>泛型 集合中只能存放学生对象 //键是字符类型,值是Stu类型 Map<String,Stu> students=new HashMap(); //添加对象 students.put(s1.no,s1); students.put(s2.no,s2); students.put("201703",s3); //取集合中key对应的元素 students.get("201703").show(); //遍历key for (String key : students.keySet()) { System.out.println("key:"+key); } //移除 students.remove("201702"); //遍历Value for (Stu s : students.values()) { s.show(); } //移除所有 students.clear(); System.out.println("总个数:"+students.size()); } } /**学生*/ class Stu { //构造方法 public Stu(String no,String name,String sex) { this.no=no; this.name=name; this.sex=sex; } //属性 public String no; //学号 public String name; //姓名 public String sex; //性别 //方法 public void show(){ System.out.println("学号:"+no+" 姓名:"+name+" 性别:"+sex); } }
//Student类 package com.zhangguo.chapter8139.d1; /**学生类**/ public class Student { //构造方法 public Student(String _no,String _name,String _sex,int _score) { this.no=_no; this.name=_name; this.sex=_sex; this.score=_score; } public Student() { } public String no;//学号 public String name; //姓名 public String sex; //性别 public int score; //成绩 @Override public String toString() { return "学号:"+no+"\t姓名:"+name+"\t性别:"+sex+"\t成绩:"+score; } }
//Map操作类 package com.zhangguo.chapter8139.d1; import java.util.HashMap; import java.util.Map; public class Collection02 { public static void main(String[] args) { Student tom = new Student("201701", "张学友", "男", 98); //System.out.println(tom); Student rose = new Student("201702", "张汇美", "女", 69); //System.out.println(rose); //定义一个map,字典,key->String,value->Student Map<String,Student> stus=new HashMap<>(); //添加 stus.put(tom.no, tom); stus.put("201702", rose); stus.put("201703", new Student("201703","张国立","男",78)); stus.put("201704", new Student("201704","张娜啦","女",60)); stus.put("201709", new Student("201709","张铁林","男",35)); //取值,引用类型传地址 System.out.println(stus.get("201702")); Student jack=stus.get("201709"); jack.score=36; //长度 System.out.println("个数:"+stus.size()); //遍历,所有key System.err.println("\n所有key:"); for (String key : stus.keySet()) { System.out.println(key+":"+stus.get(key)); } //是否存在某个对象 System.out.println("是否存在key201702:"+stus.containsKey("201702")); //删除 //根据key stus.remove("201702"); //修改 stus.put("201709", new Student("201709","张林铁","女",37)); //遍历,所有value System.err.println("\n所有value:"); for (Student v : stus.values()) { System.out.println(v); } //删除所有 stus.clear(); //长度 System.out.println("个数:"+stus.size()); } }
List<Integer> list = new ArrayList<Integer>(); list.add(3); list.add(4); HashSet<Integer> hashSet = new HashSet<Integer>(); hashSet.add(1); hashSet.add(3); hashSet.add(2); hashSet.add(6); // 重复元素将不能被添加 hashSet.add(3); // 只要有元素被添加就返回true if (hashSet.addAll(list)) { System.out.println("Add success"); } // 判断是否存在某个集合 if (hashSet.containsAll(list)) { System.out.println("The hashSet is contain 3 and 4"); } Iterator<Integer> it = hashSet.iterator(); while (it.hasNext()) { System.out.print(it.next() + " "); // 1 2 3 4 6 // 看结果是被排序了,HashSet按照Hash函数排序,Integer值的HashCode就是其int值 } // 换转成数组 Object[] integers = hashSet.toArray(); for (int i = 0; i < integers.length; i++) { System.out.print((Integer) integers[i]); } //移除元素 hashSet.remove(3); TreeSet<String> treeSet = new TreeSet<String>(); treeSet.add("C"); treeSet.add("A"); treeSet.add("D"); treeSet.add("B"); for (Iterator<String> strIt = treeSet.iterator(); strIt.hasNext();) { System.out.print(strIt.next()); // ABCD 按照字母顺序 } LinkedHashSet<String> linkedHashSet = new LinkedHashSet<String>(); linkedHashSet.add("C"); linkedHashSet.add("A"); linkedHashSet.add("D"); linkedHashSet.add("B"); for (Iterator<String> linkedIt = linkedHashSet.iterator(); linkedIt .hasNext();) { System.out.print(linkedIt.next()); // CADB 按照插入顺序 }
标签:种类 sub nsvalue scores 决定 集合 随机 常用方法 面向对象语言
原文地址:http://www.cnblogs.com/ldm666/p/8005127.html