二分法查找...查找...
代码比较简单...没有注释了
public class BinaryTree { public static void main(String[] args) { BinaryTree bt = new BinaryTree(); int[] ints = {12,123,21,123,1,432,23,42,3,123,124,3,5435,66,456554,435,423,42,1} ; for (int i = 0; i <ints.length ; i++) { bt.add(new Node(ints[i])) ; } bt.toPrint() ; } private Node root; public void add(Node n) { if(root==null){ root = n ; return ; }else{ add(root , n) ; } } public void toPrint(){ toPrint(root) ; } private void toPrint(Node n){ if(n.getLeft()!=null){ toPrint(n.getLeft()) ; } System.out.println(n.getValue()); if(n.getRight()!=null){ toPrint(n.getRight()) ; } } public void add(Node f , Node n){ if(f.getValue()==n.getValue()){ return ; } if(f.getValue()>n.getValue()){ if(f.getLeft()!=null){ add(f.getLeft(),n) ; }else{ f.setLeft(n) ; } }else{ if(f.getRight()!=null){ add(f.getRight(),n) ; }else{ f.setRight(n) ; } } } } class Node { public Node(int value) { this.value = value; } private Node left; private Node right; private int value; public Node getLeft() { return left; } public void setLeft(Node left) { this.left = left; } public Node getRight() { return right; } public void setRight(Node right) { this.right = right; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } }
ExpandableListView, Gallery, GridView, ListView, Spinner 都是AdapterView的子类,AdapterView 是内容由 Adapter 来决定的视图类.
下拉列表(Spinner)是一个每次只能选择所有项中一项的部件. 它的项目来自于与之相关联的 Adapter.
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getApplicationContext(), android.R.layout.simple_spinner_item,
nameList); //为下拉菜单后的状态添加布局文件
spinner.setAdapter(adapter); //适配器
spinner.getCount(); //获取子视图的数量
spinner.getAdapter(); //返回适配器
spinner.getSelectedItem(); //被选择项的内容
spinner.getSelectedItemId(); //被选择项的id
spinner.getPrompt(); //获取下拉菜单的标题文件
spinner.setPrompt(prompt); //设置比哦啊体文件
spinner.addView(child); //添加子视图 (这个方法继承自ViewGroup,listView等也可以使用)
ListView
void addFooterView(View v)
添加一个固定显示于列表底部的视图.如果多次调用该方法, 视图将按照它们添加的顺序排列.如果需要,添加的视图可以获得焦点.
void addFooterView(View v, Object data, boolean isSelectable)
添加一个固定显示于列表底部的视图.如果多次调用该方法, 视图将按照它们添加的顺序排列.如果需要,添加的视图可以获得焦点.
void addHeaderView(View v, Object data, boolean isSelectable)
添加一个固定显示于列表顶部的视图.如果多次调用该方法, 视图将按照它们添加的顺序排列.如果需要,添加的视图可以获得焦点.
void addHeaderView(View v)
添加一个固定显示于列表顶部的视图.如果多次调用该方法, 视图将按照它们添加的顺序排列.如果需要,添加的视图可以获得焦点.
读取Android系统的通讯录时一般会先读取联系人然后再读取其号码,嵌套循环读取。如果通讯录人数不多速度尚可,但是通讯录里有1-2百人恐怕就比较慢了,如果硬件再差点体验就更差了。
可以使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI(对应contacts2.db的数据视图view_data_restricted)视图来读取避免嵌套读取