zoukankan      html  css  js  c++  java
  • 2017.11.27T19_B3_u8

    package com.xdf.collection;

    import java.text.Collator;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    import java.util.Locale;

    import org.junit.Test;

    public class CollectionDemo {

     /**
      * Collections  所有集合类的工具类
      */
     @Test
     public void test01() {

      List<String> list = new ArrayList<>();
      list.add("z");
      list.add("a");
      list.add("v");
      list.add("b");
      System.out.println("没有排序====》" + list);
      // 01给集合升序
      Collections.sort(list);
      System.out.println("升序====》" + list);
      // 02 给集合降序
      Collections.reverse(list);
      System.out.println("降序====》" + list);
      // 03查询某个元素在集合中的位置 必须先升序排序
      Collections.sort(list);
      int index = Collections.binarySearch(list, "v");
      System.out.println("元素v存在的位置是===>" + index);
      // 04随机排序
      Collections.shuffle(list);
      System.out.println("随机排序==》" + list);
     }

     /**
      * 实现对  对象的排序
      */
     @Test
     public void test02() {
      List<Student> list = new ArrayList<>();
      list.add(new Student(50, "小黑50"));
      list.add(new Student(10, "小黑10"));
      list.add(new Student(80, "小黑80"));
      list.add(new Student(20, "小黑20"));
      list.add(new Student(60, "小黑60"));
      Collections.sort(list);
      for (Student student : list) {
       System.out.println(student);

    ************************************************

    package com.xdf.collection;

    public class PonitArray {

     /**
      * 01.可以传递0 或者 N个  int类型的数据
      * 02.怎么操作数组 怎么操作...
      * 03.必须位于参数列表中的最后一个位置
      */
     public static void main(String[] args) {
      String[] sales = { "啤酒", "饮料", "矿泉水" };
      slaeSometing("小粉");
     }

     /**
      * @param name   谁  在  出售 什么 东西
      * @param something   出售的东西
      */
     private static void slaeSometing(String name, String... something) {
      System.out.println(name + "在出售");

      for (int i = 0; i < something.length; i++) {
       System.out.print(something[i] + ",");
      }
     }

    }

    **********************************************

    package com.xdf.collection;

    //只有实现Comparable接口的类 才能被 排序!
    public class Student implements Comparable {

     private int id; // 学生编号
     private String name;

     public int getId() {
      return id;
     }

     public void setId(int id) {
      this.id = id;
     }

     public String getName() {
      return name;
     }

     public void setName(String name) {
      this.name = name;
     }

     public Student() {
      super();
     }

     @Override
     public String toString() {
      return "Student [id=" + id + ", name=" + name + "]";
     }

     public Student(int id, String name) {
      super();
      this.id = id;
      this.name = name;
     }

     // 按照自己的规则 去进行 排序
     @Override
     public int compareTo(Object o) {
      if (o instanceof Student) {
       Student stu = (Student) o;
       if (stu.getId() == this.id) {
        return 0;
       } else if (stu.getId() < this.id) {
        return -1;
       } else {
        return 1;
       }
      } else {
       return 0;
     *********************************************

    package com.xdf.linkdemo;

    /**
     * 单链表
     */
    public class MyLink {
     private int data;// 存储链表的值
     private MyLink next;// 指针指向下一个数据

     public MyLink(int i) { // 创建带参构造
      data = i;
     }

     // 向链表中增加值
     public void add(MyLink link) {
      link.next = next;
      next = link;

     }

     private void append(MyLink myLink) {
      MyLink x = this;
      while (x.next != null) {
       x = x.next;
      }
      x.next = myLink;

     }

     private void show() {
      MyLink x = this;
      while (x != null) {
       System.out.println(x.data);
       x = x.next;
      }

     }

     public static void main(String[] args) {
      MyLink link = new MyLink(10);
      link.append(new MyLink(20));// 拼接
      link.append(new MyLink(30));// 拼接

      link.add(new MyLink(40)); // 新增
      link.add(new MyLink(60)); // 新增

      link.append(new MyLink(50));// 拼接
      link.append(new MyLink(70));// 拼接
      link.show();

    *************************************************

    package com.xdf.list;

    import java.util.ArrayList;
    import java.util.List;

    public class ArrayListDemo {

     /**
      *  public ArrayList() {
         this.elementData = EMPTY_ELEMENTDATA;
         }
        
       private static final Object[] EMPTY_ELEMENTDATA = {};
       private transient Object[] elementData;
      
      
          我们在执行add();底层默认初始化了一个长度为10的数组
        Object[] elementData=new  Objct[10];
       
       
       
       
         public void ensureCapacity(int minCapacity) {
          modCount++;
          int oldCapacity = elementData.length;
          if (minCapacity > oldCapacity) {
              Object oldData[] = elementData;
              int newCapacity = (oldCapacity * 3)/2 + 1;
                  if (newCapacity < minCapacity)
              newCapacity = minCapacity;
                  // minCapacity is usually close to size, so this is a win:
                  elementData = Arrays.copyOf(elementData, newCapacity);
          }
     }
      
      */
     public static void main(String[] args) {
      // 创建ArrayList
      List arraylist = new ArrayList();
      // 向集合中增加数据
      arraylist.add(1);
      arraylist.add("2");
      arraylist.add(50.0);
      arraylist.add(4);
      arraylist.add(5);
      arraylist.add(6);
      arraylist.add(7);
      arraylist.add(8);
      arraylist.add(9);
      arraylist.add(10);
      System.out.println("============================");
      arraylist.add(11);
      // 输出集合的长度 集合中有几个数据
      System.out.println("集合的长度==》" + arraylist.size());
      // 在指定的位置新增数据
      arraylist.add(1, "哈哈");
      // 从集合中删除数据
      arraylist.remove("哈哈");
      // 判断集合是否为空
      System.out.println("集合是否为空===》" + arraylist.isEmpty());
      // 遍历集合中每一个元素
      for (Object object : arraylist) {
       System.out.println(object);
      }

    *************************************************

    package com.xdf.list;

    import java.util.ArrayList;
    import java.util.List;

    public class Demo {

     /**
      * 泛型集合:在创建集合的时候,规定了集合中能存放的数据类型!
      * int [] num={"1"};  错误
      *
      */
     public static void main(String[] args) {

      // 集合中只能存放String类型的数据
      List<String> list = new ArrayList<String>();
      list.add("1.0");
      // 创建5个User对象
      User user1 = new User(10, "小黑1");
      User user2 = new User(20, "小黑2");
      User user3 = new User(30, "小黑3");
      User user4 = new User(40, "小黑4");
      User user5 = new User(50, "小黑5");

      // 创建集合保存User
      List<User> users = new ArrayList<User>();
      users.add(user1);
      users.add(user2);
      users.add(user3);
      users.add(user4);
      users.add(user5);

      for (User user : users) {
       System.out.println(user.getName());
      }

    ******************************************************

    package com.xdf.list;

    import java.util.Set;
    import java.util.TreeSet;

    public class HashSetDemo {

     /**
      *
      * HashSet set = new HashSet();
      set.add("小黑");
      set.add("小黑");
      set.add(new String("小黑"));
      set.add(new String("小黑"));
      System.out.println(set.size());
      
      
      HashSet<String> set = new HashSet<String>();
      set.add("小黑");
      set.add("小黑");
      System.out.println(set);
      
       HashSet<User> set = new HashSet<User>();
      User user1 = new User(1, "小黑");
      User user2 = new User(1, "小黑");
      set.add(user1);
      set.add(user2);
      System.out.println(set.size());
       HashSet<String> set = new HashSet<String>();
      set.add("小黑1");
      set.add("小黑2");
      set.add("小黑3");
      set.add("小黑4");
      set.add("小黑5");
      for (String string : set) {
       System.out.println(string);
      }
      */
     public static void main(String[] args) {

      Set<Integer> set = new TreeSet<Integer>();
      set.add(20);
      set.add(10);
      set.add(2);
      set.add(200);
      set.add(120);
      for (Integer i : set) {
       System.out.println(i);
      }
      System.out.println("===========================");
      Set<String> set1 = new TreeSet<String>();
      set1.add("a");
      set1.add("n");
      set1.add("z");
      set1.add("b");
      set1.add("abc");
      for (String i : set1) {
       System.out.println(i);
      }

    *******************************************

    package com.xdf.list;

    import java.util.LinkedList;

    public class LinkedListDemo {

     public static void main(String[] args) {
      LinkedList list = new LinkedList();
      list.add(1);
      list.add(10);
      list.add(100);
      // 在链表的最前面新增数据
      list.addFirst(10000);
      list.removeLast();
      for (Object object : list) {
       System.out.println(object);
      }

     }
    }

    ******************************************

    package com.xdf.list;

    public class User { // 用户

     private int age;
     private String name;

     public int getAge() {
      return age;
     }

     public void setAge(int age) {
      this.age = age;
     }

     public String getName() {
      return name;
     }

     public void setName(String name) {
      this.name = name;
     }

     public User(int age, String name) {
      super();
      this.age = age;
      this.name = name;
     }

     public User() {
      super();
     }

     @Override
     public String toString() {
      return "User [age=" + age + ", name=" + name + "]";
     }

     @Override
     public boolean equals(Object obj) {
      if (this == obj) {
       return true;
      }
      if (obj instanceof User) {
       User user = (User) obj;
       return this.name.equals(user.getName())
         && this.age == user.getAge();
      }
      return false;
     }

     @Override
     public int hashCode() {
      return 100;

    ******************************************

    package com.xdf.map;

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;

    public class MapDemo {

     public static void main(String[] args) {

      /**
       * 创建一个Map集合
       * 集合的key都是String类型
       * 集合的value是Object类型
       */
      Map<String, Object> map = new HashMap<>();
      // 向map集合中增加数据
      map.put("dog", "小狗");
      map.put("cat", "小猫");
      map.put("desk", "桌子");
      // 从map集合中获取指定的元素 根据key 获取对应的value值
      System.out.println("dog对应的value值是====》" + map.get("dog"));

      Set<Entry<String, Object>> entrySet = map.entrySet();
      Iterator<Entry<String, Object>> iterator = entrySet.iterator();
      while (iterator.hasNext()) {
       Entry<String, Object> entry = iterator.next();
       System.out.println(entry.getKey() + "=====>" + entry.getValue());
      }

     }

    ********************************************

    package com.xdf.tree;

    /**
     * 2叉排序树
     */
    public class MyTree {
     private int data; // 根或者是数据
     private MyTree left; // 左子树
     private MyTree right; // 右子树

     public MyTree(int i) {
      data = i;
     }

     private void add(MyTree tree) {
      if (tree.data < this.data) {
       if (left == null) {
        left = tree; // 数据小放 左子树
       } else {
        left.add(tree);
       }
      } else {// 数据小放 右子树
       if (right == null) {
        right = tree;
       } else {
        right.add(tree);
       }
      }
     }

     // 遍历树的所有节点
     private void show() {
      if (left != null) {
       left.show();
      }
      System.out.println(data);
      if (right != null) {
       right.show();
      }
     }

     public static void main(String[] args) {
      MyTree tree = new MyTree(100);
      tree.add(new MyTree(80));
      tree.add(new MyTree(30));
      tree.add(new MyTree(70));
      tree.add(new MyTree(10));
      tree.show();

    *********************************************

    package com.xdf.tree;

    import java.util.ArrayList;
    import java.util.List;

    public class TreeDemo {
     private List<Node> list = new ArrayList<>(); // 所有子节点

     class Node { // 节点
      String data; // 数据
      String parent; // 父级节点

     }

     private void add(String parent, String child) {
      Node node = new Node();
      node.data = child;
      node.parent = parent;
      list.add(node);
     }

     private void findParent(String child) {
      for (int i = 0; i < list.size(); i++) {
       if (list.get(i).data.equals(child)) {
        System.out.println("父节点是==》" + list.get(i).parent);
       }
      }
     }

     /**
      * 根据父节点查询所有子节点
      */
     private void findChild(String parent) {
      // 创建一个新集合 保存找到的所有子节点
      List<String> childs = new ArrayList();

      for (int i = 0; i < list.size(); i++) {
       if (list.get(i).parent.equals(parent)) { // 找到了父节点
        childs.add(list.get(i).data);
       }
      }
      for (String child : childs) {
       System.out.println(child);
      }

     }

     public static void main(String[] args) {
      TreeDemo demo = new TreeDemo();
      demo.add("班级", "1班");
      demo.add("班级", "2班");
      demo.add("班级", "3班");
      demo.add("1班", "小黑1");
      demo.add("1班", "小黑2");
      demo.add("1班", "小黑3");
      demo.add("2班", "小白1");
      demo.add("2班", "小白2");
      demo.add("2班", "小白3");
      demo.add("3班", "小黄1");
      demo.add("3班", "小黄2");
      demo.add("3班", "小黄3");
      demo.add("3班", "小黄4");

      demo.findParent("小黑1");
      demo.findChild("3班");

  • 相关阅读:
    网易163邮箱被盗号找回经历
    C++中基类的析构函数为什么要用virtual虚析构函数
    像linux ls命令一样优雅地打印
    【Linux】- 六个超赞的字符画生成器
    linux欢迎界面 /etc/motd
    Linux 的 FIGlet 指令产生 ASCII Art 大型文字教学
    趣玩 Linux:四个生成字符图案(字符画)的命令
    案例参考手册-第四章 Curses字符界面.docx
    读取键盘输入流改为原始模式
    centos 7配置系统调度isolcpus(软中断绑定)
  • 原文地址:https://www.cnblogs.com/xiaoxiao1016/p/8085277.html
Copyright © 2011-2022 走看看