集合set、map、list
一、set 无序、可重复
public static void main(String[] args){ Set<String> set=new HashSet<String>(); String s1=new String("hello"); String s2=s1; String s3=new String("world"); String s5=new String("world"); //Set集合中add方法自动去重 set.add(s1); set.add(s2); set.add(s3); set.add(s5); //输出set数组 System.out.println(set); //第1种 for循环遍历 for(String str:set){ System.out.println("for循环遍历:"+str); } //第2中 Iterator迭代遍历 hasNext()检查序列中是否还有元素 ,next()获得序列中的下一个元素 for(Iterator iterator=set.iterator();iterator.hasNext();){ String str=(String)iterator.next(); System.out.println("Iterator迭代遍历:"+str); } //第3种方法 通过split分离然后输出 String[] s4=set.toString().split(","); for(int i=0;i<s4.length;i++){ System.out.print("split输出结果:"+s4[i].replace("[", "").replace("]", "")); } } 运行结果: [hello, world] for循环遍历:hello for循环遍历:world Iterator迭代遍历:hello Iterator迭代遍历:world split输出结果:hellosplit输出结果: world
二、list 有序、可重复
package com.liuqi.ceshi; import java.util.ArrayList; import java.util.List; public class ListTest { public static void main(String[] args) { //list 有序 可重复 List<String> person=new ArrayList(); //add添加方法 person.add("zhangsan"); person.add("lisi"); person.add("lisi"); person.add("wangwu"); person.add("zhaoliu"); person.add("zhangsan"); System.out.println("输出集合中元素"+person); //remove删除元素 person.remove(0); System.out.println("remove删除元素"+person); //通过下标获取具体值 String index0= person.get(0); System.out.println("通过下标获取具体值:"+index0); //for循环遍历 for(String str:person){ System.out.println(str); } //contains查看某个元素是否在此集合中 String personname="zhangsan"; if(person.contains(personname)){ System.out.println("zhangsan在list列表中"); } //.set(index, element) person.set(0, "liuqi"); System.out.println("将第一个下标值对应值改为liuqi:"+person); //通过元素找下标 System.out.println(person.indexOf("liuqi")); System.out.println(person.lastIndexOf("zhangsan")); List<String> animal=new ArrayList(); animal.add("dog"); // 比较两个对象是否相等用equals,比较hashcode用== if(person.equals(animal)){ System.out.println("相同"); }else{ System.out.println("不相同"); } //判断list是否为空 if(person.isEmpty()){ System.out.println("为空"); }else{ System.out.println("不为空"); } //将集合转化为字符串 System.out.println("将集合转化为字符串"+person.toString()); //将集合转化为数组 System.out.println("将集合转化为数组"+person.toArray()); //去重复 for (int i = 0; i <person.size()-1; i++) { for (int j = person.size()-1; j >i; j--) { if (person.get(j).equals(person.get(i))) { person.remove(j); } } } System.out.println("元素去重"+person); } } 运行结果: 输出集合中元素[zhangsan, lisi, lisi, wangwu, zhaoliu, zhangsan] remove删除元素[lisi, lisi, wangwu, zhaoliu, zhangsan] 通过下标获取具体值:lisi lisi lisi wangwu zhaoliu zhangsan zhangsan在list列表中 将第一个下标值对应值改为liuqi:[liuqi, lisi, wangwu, zhaoliu, zhangsan] 0 4 不相同 不为空 将集合转化为字符串[liuqi, lisi, wangwu, zhaoliu, zhangsan] 将集合转化为数组[Ljava.lang.Object;@6b38dba 元素去重[liuqi, lisi, wangwu, zhaoliu, zhangsan]
三、map 映射key-value
package com.liuqi.ceshi; import java.util.HashMap; import java.util.Map; public class MapTest { public static void main(String[] args) { Map<String,String> map=new HashMap<String,String>(); map.put("1", "zhangsan"); map.put("2", "zhangsan"); map.put("3", "lisi"); //Map.values()遍历所有values for(String values:map.values()){ System.out.println(values); } //Map.entrySet遍历key和value for (Map.Entry<String, String> entry : map.entrySet()){ System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } } } 运行结果: lisi zhangsan zhangsan key= 3 and value= lisi key= 2 and value= zhangsan key= 1 and value= zhangsan