数据结构:数据项的结构化集合,分为数据间的线性结构、半线性结构、非线性结构,表现为数据间的存储、关系、操作;
数据项(基本数据类型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));
}
非线性结构