1在使用集合时候,遍历集合元素有多种方法,包括可以使用简单的for循环,增强for循环,用Iterator迭代器对象
(1)for(int i=0;i<call.size();i++){
System.out,print(call.get(i))
}
(2)for(String name:goodName)
System.out,print(call.get(name));
(3)迭代器
Iterator iterator=myList.iterator();
while(iterator.hasNext()){
System.out,print(call.get(i))
//得到迭代器对象
System.out,print(iterator.Next());
}
2关于set对象储存数据的使用
set接口,没有定义新的方法,只是包含从collection接口继承的方法,set接口常用的实现类HashSet,TreeSet,LinkedHashSet类是HashSet类的子类。与HashSet不同的是它对所有元素维护一个双向链表
Set<String>words=new HashSet<>();
words,add("one");
words,add("two");
words,add("three");
words,add("four");//不能将重复的元素添加到集合中
for(String w :words)
System.out.println(w);
set对象实现集合运算
s1.addAll(s2):实现集合s1与s2的并运算
s1.retainAll(s2):实现集合s1与s2的交运算
s1.removeAll(s2):实现集合s1与s2的差运算
s1.containAll(s2):如果s2是s1的子集,该方法返回true
示例:
import java.util.*;
public class TreeSetDemo{
public static void main(String[] args) {
Set<String>ts=new TreeSet<>();
//TreeSet中的元素会进行自动排序
String[]s=new String []{"one","two","three","four"};
for(int i=0,i<s.length;i++){
ts.add(s[i]);
}
Sytem.out.println(ts);
}
}
程序输出结果:
[four,one,three,two]
//ArrayList的使用,可以有三种方法转换字符串的大小写
import java.util.ArrayList;
import java.util.Iterator;
public class UpperCaseDemo {
public static void main(String[] args) {
ArrayList<String>names=new ArrayList<>();
names.add("zhao");
names.add("qian");
names.add("sun");
names.add("li");
//第一种方法:通过索引循环来访问
for(int i=0;i<names.size();i++) {
String name=names.get(i);
name=name.toUpperCase();
names.set(i,name);
}
System.out.println(names);
//第二种方法:使用迭代器
Iterator<String>it=names.iterator();
ArrayList<String>names2=new ArrayList<>();
while(it.hasNext()) {
String name=(String)it.next();
name=name.toUpperCase();
it.remove();
names2.add(name);
//使用迭代器遍历集合时,不能通过集合的remove方法删除集合元素,否则会抱异常。
//我们需要通过迭代器自身提供的remove方法来删除通过next()迭代出来的元素,
//需要注意的是先next,再remove.
}
names.addAll(names2);
System.out.println(names);
//第三种方法调用replaceAll()方法
names.replaceAll(String::toUpperCase);
System.out.println(names);
}
}·
//LinkedList
示例:
public static void main (String[]args){
LinkedList<Integer>dd=new LinkedList<>();
dd.add(1);
dd.add(1);
dd.add(2);
dd.add(2);
Iterator<Integer> it =dd.iterator();
while(it.hasNext()){
Integer i=it.next();
System.out.println(i);
}
}
//ArrayList与LinkerList不同之处在于,ArrayList是顺序表,类似于数组,但长度可变适合多查找少增删的情况。LinkerList是链表适合需要频繁更新操作的情况。
//HashMap
示例:
public static void main (String[]args){
HashMap<String,String>hs=new HashMap<>();
//使用put方法插入键值对
hs.put("No.1","沸羊羊");
hs.put("No.2","黑小虎");
//插入已存在的键会进行覆盖
hs.put("No.2","双面龟");
//根据Key取出值
System.out.println(hs.get("No.1"));
System.out.println(hs.get("No.2"));
//TreeMap
// Creating an empty TreeMap
TreeMap tree_map = new TreeMap();
// Mapping string values to int keys
tree_map.put(10, "Good");
tree_map.put(15, "4");
tree_map.put(20, "Geeks");
tree_map.put(22, "Welcomes");
tree_map.put(30, "You");
System.out.println("Initial Mappings are: " + tree_map;
String returned_value = (String)tree_map.put(20, "All");
System.out.println("Returned value is: " + returned_value);
System.out.println("New map is: " + tree_map);
}
}
//Maptable
public class testHashtable {
public static void main(String []args){
HashMap<String,Integer> hm=new HashMap<>();
hm.put(new Integer(1), "one");
hm.put(new Integer(2), "two");
hm.put(new Integer(3), "three");
for(int i=1;i<=3;i++) {
String s = n.get(i);
if(s!=null) {
System.out.println(i+"="+s);
}
}