/**
* All rights Reserved, Designed By YuanXiaoShuai
* @Title: DataStructure.java
* @Package yxs
* @Description: TODO(用一句话描述该文件做什么)
* @author: 元晓帅
* @date: 2020年4月8日 上午10:20:17
* @version
* @Copyright: 2020 yxs. All rights reserved.
*/
package yxs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.Vector;
/**
* @ClassName: DataStructure
* @Description:TODO(这里用一句话描述这个类的作用)
* @author: 元晓帅
* @date: 2020年4月8日 上午10:20:17
*
* @Copyright: 2020 yxs. All rights reserved.
*/
public class DataStructure implements Comparable<DataStructure> {
private int age;
private String name;
public DataStructure() {
super();
}
public DataStructure(String name, int age) {
super();
this.age = age;
this.name = 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;
}
@Override
public int compareTo(DataStructure s) {
// 此处的this和s前后位置改变会影响排序方式
int num1 = this.age - s.age;
int num2 = num1 == 0 ? this.name.compareTo(s.name) : num1;
return num2;
}
public static void main(String[] args) {
System.out.println("List:++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
testList();
System.out.println("SortSet:+++++++++++++++++++++++++++++++++++++++++++++++++++++");
testSortSet();
System.out.println("Set:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
testSet();
System.out.println("TreeSet:自然排序+++++++++++++++++++++++++++++++++++++++++++++++");
testTreeSet();
System.out.println("TreeSet:比较器排序++++++++++++++++++++++++++++++++++++++++++++++");
testTreeSet2();
}
public static void testSet() {
HashSet<Integer> set1 = new HashSet<>();
TreeSet<Integer> set2 = new TreeSet<>();
LinkedHashSet<Integer> lSet = new LinkedHashSet<>();
Random r = new Random();
HashSet<Integer> hs = new HashSet<Integer>();
while (hs.size() < 10) {
hs.add((r.nextInt(20) + 1));
}
for (Integer i : hs) {
System.out.println(i);
}
}
public static void testSortSet() {
SortedSet<Integer> set = new TreeSet<>();
set.add(0);
set.add(3);
set.add(2);
set.add(6);
set.add(3);
System.out.println(set);
SortedSet<Integer> set2 = new TreeSet<>();
set2.add(5);
set.addAll(set2);
System.out.println(set);
set.remove(set2.first());
System.out.println(set);
set.add(5);
System.out.println(set);
set.removeAll(set2);
System.out.println(set);
System.out.println(set.contains(9));
System.out.println(set.containsAll(set2));
System.out.println(set.isEmpty());
Iterator<Integer> sIterator = set.iterator();
while (sIterator.hasNext()) {
System.out.println(sIterator.next());
}
System.out.println(set.size());
set.add(5);
System.out.println(set.retainAll(set2));
// 把set2和set的交集给set
System.out.println(set);
System.out.println(set.toString());
System.out.println(set.retainAll(set));
System.out.println(set.first());
System.out.println(set.last());
System.out.println(set.hashCode());
set.clear();
System.out.println(set);
}
public static void testTreeSet() {
TreeSet<DataStructure> ts = new TreeSet<DataStructure>();
DataStructure s1 = new DataStructure("zfliu", 18);
DataStructure s2 = new DataStructure("zfliu", 20);
DataStructure s3 = new DataStructure("zfliu", 18);
DataStructure s4 = new DataStructure("ZFLIU", 18);
DataStructure s5 = new DataStructure("Java", 18);
ts.add(s1);
ts.add(s2);
ts.add(s3);
ts.add(s4);
ts.add(s5);
for (DataStructure s : ts) {
System.out.println(s.getName() + s.getAge());
}
}
public static void testTreeSet2() {
TreeSet<DataStructure> ts = new TreeSet<DataStructure>(new Comparator<DataStructure>() {
// 匿名内部类实现比较器排序接口
@Override
public int compare(DataStructure s1, DataStructure s2) {
int num1 = s1.getAge() - s2.getAge();
int num2 = num1 == 0 ? s1.getName().compareTo(s2.getName()) : num1;
return num2;
}
});
DataStructure s1 = new DataStructure("zfliu", 18);
DataStructure s2 = new DataStructure("zfliu", 20);
DataStructure s3 = new DataStructure("zfliu", 18);
DataStructure s4 = new DataStructure("ZFLIU", 18);
DataStructure s5 = new DataStructure("Java", 18);
ts.add(s1);
ts.add(s2);
ts.add(s3);
ts.add(s4);
ts.add(s5);
for (DataStructure s : ts) {
System.out.println(s.getName() + s.getAge());
}
}
public static void testList() {
List<Integer> l = new ArrayList<Integer>();
ArrayList<Integer> list = new ArrayList<>();
list = (ArrayList<Integer>) l;
LinkedList<Integer> list2 = new LinkedList<Integer>();
Vector<Integer> list3 = new Vector<Integer>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list);
System.out.println(list.get(0));
ListIterator<Integer> it = list.listIterator();
// 正向遍历List
while (it.hasNext()) {
System.out.println(it.next());
}
it.add(500000);
it.add(500001);
// 逆向遍历List
// 逆向遍历必须先正向遍历使指针指到后面位置才能使用(使用意义不大)
while (it.hasPrevious()) {
System.out.println(it.previous());
}
list.set(1, 1000);
System.out.println(list.get(1));
while (it.hasNext()) {
System.out.println(it.next());
}
String[] s = new String[] { "A", "B", "C", "D", "E" };
List<String> lista = Arrays.asList(s);
System.out.println(lista.get(3));
String[] dest = lista.toArray(new String[0]);// new String[0]是指定返回数组的类型
System.out.println("dest: " + Arrays.toString(dest));
list2.add(2);
list2.add(3);
System.out.println(list2.getFirst() + " " + list2.getLast());
list2.removeFirst();
list2.removeLast();
System.out.println(list2);
list2.add(8888);
list2.addFirst(0);
list2.addLast(0);
System.out.println(list2);
list3.add(3);
list3.add(4);
list3.addElement(99999);
System.out.println(list3.elementAt(2));
Iterator<Integer> vIterator = list3.iterator();
// 使用Iterator遍历 Collection
// 使用elements
Enumeration<Integer> elements = list3.elements();
while (elements.hasMoreElements()) {
System.out.println(elements.nextElement());
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java前后开发面试题,大厂进阶之路,基于JavaGuide、Cyc大佬、牛客上的面经及王道考研相关视频,并改进了其中说法矛盾或含糊之处。 包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多线程并发、netty、MySQL、MongoDB、Elasticsearch、Redis、HBASE
资源推荐
资源详情
资源评论
收起资源包目录
Java program demo 以及一些面试题,笔试题,算法题等等.zip (365个子文件)
readme.txt.bak 0B
.classpath 1KB
.gitignore 9B
DataStructure.java 6KB
AddTwoNum.java 6KB
ReflectClass.java 3KB
ClassPathXmlApplicationContext.java 3KB
TernarySearch.java 3KB
HeapSort.java 3KB
ReflectIOCDemo.java 3KB
CountingSort.java 3KB
NiuNiuPuke2.java 3KB
maxSubtraction.java 3KB
Main2.java 3KB
BinarySearch.java 3KB
QuickSort.java 3KB
Num2.java 3KB
NiuNiuPuke.java 2KB
LinkList.java 2KB
MergeSort.java 2KB
pukepaixu.java 2KB
IterativeBinarySearch.java 2KB
Main2.java 2KB
MyQueue.java 2KB
InterpolationSearch.java 2KB
IterativeTernarySearch.java 2KB
SaddlebackSearch.java 2KB
ValidExp.java 2KB
pukepaixu2.java 2KB
MaxRain.java 2KB
num1.java 2KB
QueueConsumer.java 2KB
BubbleSort.java 2KB
Main.java 2KB
QuickSort.java 2KB
RomanToInt.java 2KB
FindMedianSortedArrays.java 2KB
LengthOfLongestSubstring.java 2KB
Main2.java 2KB
MaxArea.java 2KB
vivo2020num2.java 2KB
SortUtils.java 2KB
TwoSum.java 2KB
CombSort.java 2KB
StringSplite8.java 2KB
IsPalindrome.java 2KB
Main3.java 2KB
Main2.java 2KB
Main.java 2KB
CombinationSum.java 2KB
ConfigManager.java 2KB
Main.java 2KB
SubSgtring8.java 2KB
QueueProducer.java 2KB
ali02.java 2KB
CycleSort.java 2KB
Main1.java 2KB
LinearSearch.java 2KB
Main2.java 2KB
TraverseList.java 2KB
Main.java 2KB
LongestCommonPrefix.java 2KB
lk.java 2KB
Main1.java 2KB
CoinCount.java 1KB
TestTopicProducer.java 1KB
huoxingren.java 1KB
InputOuput.java 1KB
QueueProducer.java 1KB
CocktailShakerSort.java 1KB
CriteriaPatternDemo.java 1KB
IndexNum.java 1KB
A.java 1KB
bilibili2020num2.java 1KB
AnonymousInnerClass.java 1KB
TopicProducer.java 1KB
Array23333333.java 1KB
AbstractFactoryPatternDemo.java 1KB
Main1.java 1KB
Num1.java 1KB
BubbleSort.java 1KB
SelectionSort.java 1KB
TestReceiveMsQueue.java 1KB
Reverse.java 1KB
InsertionSort.java 1KB
BogoSort.java 1KB
xxxxxxx.java 1KB
Tezhan.java 1KB
Main3.java 1KB
Main.java 1KB
plusplus.java 1KB
TestTopicConsumer.java 1KB
JumpSearch.java 1KB
Main2.java 1KB
RadixSort.java 1KB
TestRandom.java 1KB
TestSendMSQueue.java 1KB
Main.java 1KB
Solution.java 1KB
MathRound.java 1KB
共 365 条
- 1
- 2
- 3
- 4
资源评论
极致人生-010
- 粉丝: 3162
- 资源: 3078
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功