由于这学期开了android课程,好久没有接触的java已经彻底生疏了,常用的数据结构以及包都已经不大会用了,所以写一个知识弥补的博客,以便以后回忆。

Java API

数据结构

1. Map-HashMap

import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Collection; Map<Integer,String> m1=new HashMap<Integer,String>();
for(int i = 0 ; i < 10 ; i++){
m1.put(i,String.format("test%d",i));
}
System.out.println(m1); Set<Map.Entry<Integer,String>>set=m1.entrySet(); for(Map.Entry<Integer,String> entry:set){
System.out.println(entry.getKey() + ":" + entry.getValue());
} //查找某一个key对应的value
m1.get(key);
//判断是否存在
m1.containsKey(4);
m2.containsValue("test"); Set<Integer>keys=m1.keySet();
Collection<String> values = m1.values(); //删除key对应的一对键值
m1.remove(key);

2. StringBuilder

//主要操作是append 和 insert方法
StringBuilder<String> sb = new StringBuilder<String>();
sb.append("test");
int sb.capacity();//返回当前容量
char sb.charAt(int index);//得到对应的char值
int sb.codePointAt(int index);//返回索引处字符
StringBuilder sb.deleteCharAt(int index); //删除某处的字符
//通常是start和end是与sb.length()相关的
StringBuilder sb.delete(int start,int end);
//查找指定字符串
int sb.indexOf(String str);
//插入
StringBuilder sb.insert(int offset,String str);
StringBuilder sb.reverse();//翻转
StringBuilder sb.replace(int start,int end,String str);//替换操作
void trimToSize();//尝试减少字符序列存储空间
String sb.toString();//返回字符串表示形式

3. List-ArrayList

List:大小可变数组

boolean addAll (Collection<? extends E> c) 按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
boolean addAll (int index, Collection<? extends E> c) 从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
void clear () 移除此列表中的所有元素。
Object clone () 返回此 ArrayList 实例的浅表副本。
boolean contains (Object o) 如果此列表中包含指定的元素,则返回 true
void ensureCapacity (int minCapacity) 如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
E get (int index) 返回此列表中指定位置上的元素。
int indexOf (Object o) 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
boolean isEmpty () 如果此列表中没有元素,则返回 true
int lastIndexOf (Object o) 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
E remove (int index) 移除此列表中指定位置上的元素。
boolean remove (Object o) 移除此列表中首次出现的指定元素(如果存在)。
protected void removeRange (int fromIndex, int toIndex) 移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
E set (int index, E element) 用指定的元素替代此列表中指定位置上的元素。
int size () 返回此列表中的元素数。
Object[] toArray () 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
<T> T[] toArray (T[] a) 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
void trimToSize () 将此 ArrayList 实例的容量调整为列表的当前大小。

4. Vector

import java.util.*;
import java.util.List;
import java.util.Vector; Vector<String> vec = new Vector<String>();
String[] arr1={"a","b","c","d"};
Vector<String> vec2 = new Vector<String>(Arrays.asList(arr1)); //如何遍历
Enumeration<String> iter = vec.elements();
while(iter.hasMoreElements()){
System.out.println(iter.nextElement());
} //其他一些属性:
vec.capacity(); //vector容量
vec.size(); //vector大小
vec.isEmpty(); //是否为空
vec.setSize(15); //设置size
vec.trimToSize(); //压缩到Size
vec.hashCode(); //哈希码
vec.equals(vec2); //相等 //增删改查
//增
vec.add(0,"addthing");
i=0
vec.add(String.format("%d",i))//从尾部添加String
vec.addAll(3,vec2)//从第3个元素,添加另外一个vector(如果没有3那就从尾部插入)
vec.add(8,"test")//在第8个位置添加“test”
vec.insertElementAt("test",3)//从第三个位置开始插入test //删
vec.remove("deletething"); //删字符串
vec.removeElementAt(2); //删第2个位置上的字符
vec.removeAllElements();//全部删掉 = clear() //改
vec.set(0,"start");//设置第0位置为start字符串 //查
//取某一位数据
String str=vec.get(3);//vec的第三个位置的内容
String str=vec.firstElement();
String str=vec.lastElement();

5. Stack

Stack继承自Vector,所以继承了全部的方法,下面介绍特有的方法:

Stack<Integer> s = new Stack<Integer>();
for(int i = 0 ; i < 10 ; i++){
s.push(i);
}
//压栈
s.push(10);
//取顶
s.peek();
//弹出顶
Integer top = s.pop();
//查找
s.search(3); //找不到返回-1,找到则返回从后往前数的第几位(从栈顶开始数)

6. Set

import java.util.ArrayList;
import java.util.Set;
public static void setDemo() {
int[] nums = new int[] {1, 4, 8, 3, 22, 34, 4, 6, 0, 33, 5, 6, 3, 9};
List list = new ArrayList();
for (int i:nums) {
list.add(i);
}
System.out.println(list);
//[1, 4, 8, 3, 22, 34, 4, 6, 0, 33, 5, 6, 3, 9]
Set<Integer> set = new HashSet<Integer>();
//remove duplicate elements
set.addAll(list);
System.out.println(set);
//[0, 1, 33, 34, 3, 4, 5, 22, 6, 8, 9]
set.add(4); //4 is a duplicate element, so this will not take effect
System.out.println(set);
//[0, 1, 33, 34, 3, 4, 5, 22, 6, 8, 9]
System.out.println(set.size()); //11
}

Java知识弥补-Android开发的更多相关文章

  1. 2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

    北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5 ...

  2. Android学习探索之Java 8 在Android 开发中的应用

    前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...

  3. Java ME之Android开发从入门到精通

    1. 搭建Android开发环境 方式一:使用ADT插件安装 ADT插件的下载与安装,ADT插件获取网址:http://www.androiddevtools.cn/ 下载好的ADT插件如图所示: 在 ...

  4. 【转】Ubuntu 14.04配置安装java环境和android开发环境(包括真机调试环境)

    原文网址:http://my.oschina.net/HalZf/blog/347351 总要记录下过程,不然老是会忘记掉-真老了.-_-! 一.配置安装ubuntu 64位java环境: 1.下载l ...

  5. 实验四:Android 开发基础

    实验四:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:5月26日 实验密级: 非密级 预习程度: 已预习 必修/选修 ...

  6. 方法对了,你做1年Android开发能顶别人做10年

    前几天后台有读者问我这样的问题.他在一家互联网公司工作3年了,每天都很忙,事情又多又杂. 本想着学习多一些东西也不是坏事,可到头来一无所获,什么都没学会,满腔的热情也被消磨得差不多. 三天两头动辞职的 ...

  7. Xamarin.Android开发实践(九)

    Xamarin.Android之ActionBar与菜单 一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在 Android 3.0 以上的版本中,我们已经可以使用Act ...

  8. 移动应用产品开发-android开发(一)

    最近公司希望增添移动开发业务,进行移动互联网开发的调研及产品需求调研. 我主要负责技术解决方案的研究,从android开发开始学习.同时跟经理一起与其他部门同事沟通了解移动开发方面的需求. 在了解an ...

  9. 【转】Android开发笔记(序)写在前面的目录

    原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经 ...

随机推荐

  1. (分解质因数模板)求 1~r 内与 n 互素的元素个数

    void Solve(LL n){ ///分解质因数保存结果于p p.clear(); ; i*i<=n; i++) ){ p.push_back(i); ) n/=i; } ) p.push_ ...

  2. 《转载》struts旅程《2》

    上一篇我们简单了解了struts原理,学习SSH,第一部是傻瓜式学习法,人家怎么做就跟着怎么做就ok.我们以登录为例,Struts配置步骤总结如下(如图2.1): 图2.2 1.          j ...

  3. Minix2.0内核源代码的组织结构

    Minix2.0操作系统的源代码由两个目录组成:include/目录和src/目录 include/目录包含了操作系统所有的头文件(即.h文件) src/目录下包含了操作系统所有的源文件(.c或.s文 ...

  4. 证书:数字签名和验签&加密和解密

    用的是湖北省数字证书认证管理中心的签名和加密 1.带私钥的证书,即p12格式证书(后缀为.pfx) 2.不带私钥的证书,有多种格式,通常我们使用的是cer格式证书(后缀为.cer) 一. 1.什么是对 ...

  5. 分布式数据库主键id生成策略

    分布式数据库部署主要分为两种,一种是读写分离.这个需要弄主从数据库.主要是写的时候写主数据库,读的时候读从数据库.分散读取压力,对于读多写少的系统有利于 提高其性能.还有一种是分布式存储,这种主要是将 ...

  6. 手机联系人信息获取(contacts) ---- HTML5+

    模块:contacts Contacts模块管理系统通讯录,用于可对系统通讯录进行增.删.改.查等操作.通过plus.contacts获取系统通讯录管理对象. 对象:联系人对象(属性:电话,地址等)针 ...

  7. CH1402 后缀数组【Hash】【字符串】【二分】

    1402 后缀数组 0x10「基本数据结构」例题 描述 后缀数组 (SA) 是一种重要的数据结构,通常使用倍增或者DC3算法实现,这超出了我们的讨论范围.在本题中,我们希望使用快排.Hash与二分实现 ...

  8. rac库grid目录权限(6751)导致数据库宕机案例 此方法仅用于紧急救助

    问题: 我的rac环境不小心通过chown命令改变了/u01目录及其子目录的权限,导致rac节点2数据库宕掉,sqlplus下打开数据库报错如下: [oracle@node2 ~]$ sqlplus ...

  9. 磁盘 I/O 性能监控的指标

    指标 1:每秒 I/O 数(IOPS 或 tps) 对于磁盘来说,一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和.当传输小块不连续数据时,该 ...

  10. Network of Schools---poj1236(强连通分量)

    题目链接 题意:学校有一些单向网络,现在需要传一些文件 求:1,求最少需要向几个学校分发文件才能让每个学校都收到, 2,需要添加几条网络才能从任意一个学校分发都可以传遍所有学校. 解题思路(参考大神的 ...