package zy.com.datastructure;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.widget.Button;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.sort)
Button sort;
@BindView(R.id.insert)
Button insert;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
private List<User> list = new ArrayList<>();
private MyAdapter adapter;
private String TAG1 = "TAG1";
private String TAG2 = "TAG2";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
// long startTime = System.currentTimeMillis(); //获取开始时间
// long endTime = System.currentTimeMillis(); //获取结束时间
// System.out.println("程序运行时间: " + (startTime - endTime) + "ms");
initData();
adapter = new MyAdapter(R.layout.item_recycler, list);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(adapter);
}
private void initData() {
for (int i = 0; i < 2000; i++) {
Random random = new Random();
String time = String.valueOf(System.currentTimeMillis());
String name = "张" + random.nextInt(10000);
list.add(new User(time, name));
}
}
@OnClick(R.id.sort)
public void onSortClicked() {
long startTime = System.currentTimeMillis(); //获取开始时间
Collections.sort(list, new TimeComparator()); // 根据时间排序
adapter.setNewData(list);
long endTime = System.currentTimeMillis(); //获取结束时间
Log.i(TAG1, "Sort程序运行时间: " + (startTime - endTime) + "ms");
System.out.println("按时间排序:");
// myprint(list);
}
// 自定义方法:分行打印输出list中的元素
public void myprint(List<User> list) {
Iterator it = list.iterator(); // 得到迭代器,用于遍历list中的所有元素
while (it.hasNext()) {// 如果迭代器中有元素,则返回true
System.out.println("\t" + it.next());// 显示该元素
}
}
@OnClick(R.id.insert)
public void onInsertClicked() {
long startTime = System.currentTimeMillis(); //获取开始时间
list.add(new User(String.valueOf(System.currentTimeMillis()), "李四"));
Collections.sort(list, new PriceComparator()); // 根据时间排序
long endTime = System.currentTimeMillis(); //获取结束时间
Log.i(TAG1, "Insert And Sort程序运行时间: " + (startTime - endTime) + "ms");
System.out.println("按时间排序:");
myprint(list);
}
// 自定义比较器:按书的价格排序
static class PriceComparator implements Comparator {
public int compare(Object object1, Object object2) {// 实现接口中的方法
User p1 = (User) object1; // 强制转换
User p2 = (User) object2;
return Integer.valueOf(p1.time).compareTo(Integer.valueOf(p2.time));
}
}
// 自定义比较器:按书的价格排序
static class TimeComparator implements Comparator {
public int compare(Object object1, Object object2) {// 实现接口中的方法
User p1 = (User) object1; // 强制转换
User p2 = (User) object2;
return (p1.time).compareTo(p2.time);
}
}
// 自定义比较器:按书的价格排序
static class NameComparator implements Comparator {
public int compare(Object object1, Object object2) {// 实现接口中的方法
User p1 = (User) object1; // 强制转换
User p2 = (User) object2;
return p1.name.compareTo(p2.name);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
分析算法时间复杂度java.zip
共38个文件
xml:12个
png:10个
java:4个
需积分: 2 0 下载量 76 浏览量
2023-10-13
22:38:46
上传
评论
收藏 135KB ZIP 举报
温馨提示
时间复杂度
资源推荐
资源详情
资源评论
收起资源包目录
分析算法时间复杂度java.zip (38个子文件)
Data-Structure-master
gradle.properties 730B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 230B
app
src
test
java
zy
com
datastructure
ExampleUnitTest.java 398B
main
java
zy
com
datastructure
MyAdapter.java 749B
MainActivity.java 4KB
User.java 618B
res
mipmap-xxhdpi
ic_launcher_round.png 10KB
ic_launcher.png 6KB
mipmap-hdpi
ic_launcher_round.png 5KB
ic_launcher.png 3KB
drawable-v24
ic_launcher_foreground.xml 2KB
mipmap-anydpi-v26
ic_launcher.xml 270B
ic_launcher_round.xml 270B
mipmap-mdpi
ic_launcher_round.png 3KB
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher_round.png 15KB
ic_launcher.png 9KB
mipmap-xhdpi
ic_launcher_round.png 7KB
ic_launcher.png 4KB
values
colors.xml 208B
strings.xml 77B
styles.xml 383B
layout
item_recycler.xml 585B
activity_main.xml 1KB
drawable
ic_launcher_background.xml 5KB
AndroidManifest.xml 718B
proguard-rules.pro 751B
build.gradle 986B
.gitignore 7B
LICENSE 1KB
gradlew.bat 2KB
build.gradle 589B
.idea
vcs.xml 219B
gradle.xml 626B
settings.gradle 15B
gradlew 5KB
.gitignore 118B
共 38 条
- 1
资源评论
北航程序员小C
- 粉丝: 2222
- 资源: 1823
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功