数据结构Java

数据结构:数据项的结构化集合,分为数据间的线性结构、半线性结构、非线性结构,表现为数据间的存储、关系、操作;

数据项(基本数据类型java.lang):byte/short/int/long/float/double/char/boolean

 

线性结构:数组、列表、字符串、栈、队列。。java.util

  • 数组:数据项物理存放位置与逻辑次序一致;
  • 列表:数据项物理存放位置与逻辑次序不一致;
  • 字符串:属于线性结构,自然地可直接利用数组或列表等序列结构加以实现。

Array

//声明
  int[] a;
  int b[];
//创建数组对象
  a = new int[4];
  b = new int[5];
//初始化(对数组元素的初始化)
//默认初始化:数组元素相当于对象的成员变量,默认值跟成员变量的规则一样。数字0,布尔false,char\u0000,引用:null;
//动态初始化:
  for(int i=0;i<a.length;i++){
    a[i] = i*12;
  }
//静态初始化
  int c[] = {23,43,56,78};//长度:4,索引范围:[0,3]
    new char[] {'a','b','c'}
  nameClass[] c2 = {
            new nameClass("联想"),
            new nameClass("华硕"),
            new nameClass("惠普"),
            new nameClass("DELL"),
            new nameClass("宏基"),
            };
  nameClass c3 = new nameClass("联想");
  System.out.println(c3==c2[0]);

List:

List<Person> list = Arrays.asList(p1, p2, p3, p4, p5);

List<Person> lista = new ArrayList();
List<Person> listb = new LinkList();
list.add();
list.remove();

//https://www.cnblogs.com/xumBlog/p/9507936.html
//https://www.jianshu.com/p/9fe8632d0bc2
list.stream()...

//stream示例
//---------------------------------------------------------------------------------
List<String> list = Arrays.asList("/home/admin/a.txt", "/home/admin/a.txt", "/home/admin/a.txt");
List<String> files = list.stream()
                .flatMap(s -> Arrays.stream(s.split("/")))
                .filter(s -> (s.endsWith(".txt")))
                .collect(Collectors.toList());

for(String f : files){
    System.out.println(f);
}
a.txt
b.txt
c.txt

//去字符串中间子串
//---------------------------------------------------------------------------------
String path = "/home/admin/log/log.txt";
String filename = path.substring(path.lastIndexOf("/") + 1, path.indexOf(".txt"));
System.out.print(filename);

Set:

List<String> values = Arrays.asList("aa", "bb", "aa");
Set<String> valueSet = new HashSet<>(values);
System.out.println(valueSet);

半线性结构:字典Map

//通用map:HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap有序、WeakHashMap、ConcurrentHashMap
//区别:是否线程安全、是否排序

//初始化
Map paramMap = new HashMap(1);
Map<String, String> map = new HashMap<>();

//遍历 https://www.cnblogs.com/lzq198754/p/5780165.html
for (String key : map.keySet()) {
    System.out.println(key + " :" + map.get(key));
}

非线性结构

 

jdk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值