android中的键值对
hashmap,contentvalue,namevaluepair,jsonobject
ArrayList和HashMap的区别:
内部元素:ArrayList储存的是单个对象(此对象是可以通过设置对象类进而封装各种数据的),即ArrayList<user> al = new ArrayList<user>();
而HashMap储存的是一组一组的key和value,像:HashMap<int,String> hm = new HashMap<int,String>();
查找效率:HashMap的效率高些,因为它是散列存储的复杂度比较低,而ArrayList是顺序存储的。ArrayList是有序的,而HashMap无序。
继承接口:HashMap是继承的Map接口,存放的是<key,value>且不允许key为null。ArrayList是继承的list接口,存储形式类似链表,允许随机的数据访问。(HashMap是允许使用 null 值和 null 键的!Hashtable是不允许的!)
例如:
import java.util.HashMap; public class Student { String name; String sex; public Student(String n,String s) { name=n; sex=s; } public String toString(){ return ("姓名:"+name+"\n"+"性别:"+sex+"\n"); } public static void main(String [] args){ ArrayList<Student> al=new ArrayList<Student>(); HashMap hm=new HashMap(); Student s1=new Student("张三","男"); Student s2=new Student("李四","男"); Student s3=new Student("小利","女"); //存值是根据学生编号加上学生信息这样的一组信息 hm.put("001",s1); hm.put("002",s2); hm.put("003",s3); //存值是直接存入一个对象实例 al.add(s1); al.add(s2); al.add(s3); //查找学生编号是001的学生 //因为hm.get("001")反回的是Object所以加上强转 Student s=(Student)hm.get("001");//通过键名来取 Student s1=(Student)al.get(0);//类似数组通过下标来取 System.out.println(s.toString()); } }
android中的NameValuePair(使用url进行数据传输)和ContentValues(数据库写入的时候的内容组装)以及jsonobject(用于流数据传输的时候)、
NameValuePair: String url="http://www.baidu.com"; HttpPost httppost=new HttpPost(url); //建立HttpPost对象 List<NameValuePair> params=new ArrayList<NameValuePair>(); //建立一个NameValuePair数组,用于存储欲传送的参数 params.add(new BasicNameValuePair("id","2544")); params.add(new BasicNameValuePair("pwd","2544")); //添加参数 httppost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); //设置编码 HttpResponse response=new DefaultHttpClient().execute(httppost); //发送Post,并返回一个HttpResponse对象 ContentValues: ContentValues values=new ContentValues(); value.put("valuename",value); jsonobject: JsonObject jso=new JsonObject(); jso.put("valuename",value); jso.getString("valuename");