'언어'에 해당되는 글 33건
- 2016.07.08 [Thread]쓰레드 기본 코드
- 2016.06.08 [C#] 걸린 시간 체크
- 2016.03.22 [C#] ListView item 삭제
- 2016.03.22 [C#] ListView 에 Item 추가
- 2015.12.08 [C#] Active Directory 사용자 리스트 가져오기
- 2015.12.07 JAVASCRIPT 날짜 관련 정리
- 2015.12.02 JavaCollection(List, Set) 과 Map 설명
- 2015.12.02 HashMap 의 Key, value 값 가져오기
- 2015.12.02 모든 JVM에 대한 파일 인코딩을 전역 설정하는 간단한 절차 방법 2
- 2015.12.02 JAVA 설치 1
쓰레드를 처음 쓰는 분들을 위한 예제 코드 입니다.
참조만 하세요..ㅎㅎ..
using System.Threading;
//---------------------------------------------------------------------------------------
public class Worker
{
private volatile bool _shouldStop;
public void DoWork()
{
while (!_shouldStop)
{
Console.WriteLine("worker thread: start..." + DateTime.Now.ToString());
try
{
if (_shouldStop == true) break;
//여기에 내가 돌리고 싶은 코드를 ~~~
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Thread.Sleep(1000);
}
Console.WriteLine("worker thread: terminating gracefully.");
_shouldStop = false;
}
public void RequestStop()
{
_shouldStop = true;
}
}
//---------------------------------------------------------------------------------------
private Worker worker = new Worker();
private Thread workerThread;
private void button1_Click(object sender, EventArgs e)
{
workerThread = new Thread(worker.DoWork);
workerThread.Start();
Console.WriteLine("Split Thread: Starting worker thread...");
}
private void button2_Click(object sender, EventArgs e)
{
try
{
worker.RequestStop();
workerThread.Join();
}
catch (Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
'언어 > C#' 카테고리의 다른 글
C# 한글 인코딩 (0) | 2017.06.18 |
---|---|
[ini] ini파일 읽기 쓰기 기본 코드 (0) | 2017.02.14 |
[C#] 걸린 시간 체크 (0) | 2016.06.08 |
[C#] ListView item 삭제 (0) | 2016.03.22 |
[C#] ListView 에 Item 추가 (0) | 2016.03.22 |
using
System.Diagnostics;
Stopwatch SW =
new
Stopwatch();
SW.Reset();
SW.Start();
SW.Stop();
delay = SW.Elapsed.ToString();
// EX) "00:00:00.0000045"
//delay = SW.ElapsedMilliseconds.ToString() ;
// EX) "123"
[참고] http://overit.tistory.com/entry/C-%EC%8B%9C%EA%B0%84%EC%B2%B4%ED%81%ACStopwatch
'언어 > C#' 카테고리의 다른 글
[ini] ini파일 읽기 쓰기 기본 코드 (0) | 2017.02.14 |
---|---|
[Thread]쓰레드 기본 코드 (0) | 2016.07.08 |
[C#] ListView item 삭제 (0) | 2016.03.22 |
[C#] ListView 에 Item 추가 (0) | 2016.03.22 |
[C#] Active Directory 사용자 리스트 가져오기 (0) | 2015.12.08 |
선택된 ListView의 Item 삭제 방법입니다.
if (MessageBox.Show("선택하신 항목이 삭제 됩니다.\r계속 하시겠습니까?", "항목 삭제", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
if (listView.SelectedItems.Count > 0)
{
int index = listView.FocusedItem.Index;
listView.Items.RemoveAt(index);
}
else
{
MessageBox.Show("선택된 항목이 없습니다.");
}
}
'언어 > C#' 카테고리의 다른 글
[ini] ini파일 읽기 쓰기 기본 코드 (0) | 2017.02.14 |
---|---|
[Thread]쓰레드 기본 코드 (0) | 2016.07.08 |
[C#] 걸린 시간 체크 (0) | 2016.06.08 |
[C#] ListView 에 Item 추가 (0) | 2016.03.22 |
[C#] Active Directory 사용자 리스트 가져오기 (0) | 2015.12.08 |
아래처럼 하면 IP, Port, Product 순으로 넣을수 있다.
ListViewItem items = new ListViewItem();
items.Text = ip; //Ip삽입
items.SubItems.Add(port); //port삽입
items.SubItems.Add(product); //product삽입
listView.Items.Add(items); //실제 추가
'언어 > C#' 카테고리의 다른 글
[ini] ini파일 읽기 쓰기 기본 코드 (0) | 2017.02.14 |
---|---|
[Thread]쓰레드 기본 코드 (0) | 2016.07.08 |
[C#] 걸린 시간 체크 (0) | 2016.06.08 |
[C#] ListView item 삭제 (0) | 2016.03.22 |
[C#] Active Directory 사용자 리스트 가져오기 (0) | 2015.12.08 |
try
{
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://piserver.com",
"test", "Passw0rd"); //서버도메인 정보, 서버의 계정ID, 계정 PW
DirectorySearcher directorySearcher = new DirectorySearcher(searchRoot);
directorySearcher.Filter = "(&(objectCategory=person)(objectClass=user))";
string text = "sAMAccountName"; //ID를 가져오겠다는 뜻이다.
//directorySearcher.PropertiesToLoad.Add("cn");
directorySearcher.PropertiesToLoad.Add(text);
directorySearcher.PropertiesToLoad.Add("mail"); //mail을 가져오겠다는 뜻이다.
directorySearcher.PropertiesToLoad.Add("usergroup"); //usergroup을 가져오겠다는 뜻이다.
directorySearcher.PropertiesToLoad.Add("displayname"); //표기이름을 가져오겠다는 뜻이다.
SearchResultCollection resultCol = directorySearcher.FindAll();
SearchResult result;
string userName = "";
List<Users> lstADUsers = new List<Users>();
if (resultCol != null)
{
for (int counter = 0; counter < resultCol.Count; counter++)
{
string UserNameEmailString = string.Empty;
result = resultCol[counter];
if (result.Properties.Contains("samaccountname"))
{
Users objSurveyUsers = new Users();
if(result.Properties["samaccountname"] != null)
userName = (String)result.Properties["samaccountname"][0];
//해당 항목을 주석처리 한 이유는 해당 항목이 미입력된 경우 에러가 출력되기 때문이다.ID는 반드시 있으므로 ID만 일단 해보는 걸로~
//if (result.Properties["displayname"] != null)
// objSurveyUsers.DisplayName = (String)result.Properties["displayname"][0];
//if (result.Properties["mail"] != null)
// objSurveyUsers.Email = (String)result.Properties["mail"][0];
lstADUsers.Add(objSurveyUsers);
}
}
}
}
catch(Exception ex)
{
System.Console.WriteLine("## Get Search AD User List Exception : " + ex.Message);
}
[참조 : http://www.codeproject.com/Tips/599697/Get-list-of-Active-Directory-users-in-Csharp]
'언어 > C#' 카테고리의 다른 글
[ini] ini파일 읽기 쓰기 기본 코드 (0) | 2017.02.14 |
---|---|
[Thread]쓰레드 기본 코드 (0) | 2016.07.08 |
[C#] 걸린 시간 체크 (0) | 2016.06.08 |
[C#] ListView item 삭제 (0) | 2016.03.22 |
[C#] ListView 에 Item 추가 (0) | 2016.03.22 |
펌 : http://lazy-mong.tistory.com/24
<input type='button' value='오늘' onclick="DateSearch.getToday();">
<input type='button' value='이번주' onclick="DateSearch.getThisWeek();">
<input type='button' value='이번달' onclick="DateSearch.getThisMonth();">
<input type='button' value='전체' onclick="DateSearch.resetDate();">
<script type="text/javascript">
DateSearch = function() {
DateSearch.form = document.getElementById('shop_list');
DateSearch.date = new Date();
//올해
DateSearch.date.curYear = DateSearch.date.getYear();
//이번달
DateSearch.date.curMonth = DateSearch.date.getMonth() ;
//오늘
DateSearch.date.curDate = DateSearch.date.getDate();
//요일
DateSearch.date.curDay = DateSearch.date.getDay();
//오늘 YYYY-mm-dd
DateSearch.getToday = function() {
var fullDate = DateSearch.makeFullDate(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate);
DateSearch.form.date_s.value = fullDate;
DateSearch.form.date_e.value = fullDate;
}
//7일뒤 YYYY-mm-dd
DateSearch.getNextSevenDays = function() {
document.shop_list.searchtype.value = 'enddate';
var sevenDaysLater = new Date(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate + 6) ;
var nextSevenYear = sevenDaysLater.getFullYear();
var nextSevenMonth = sevenDaysLater.getMonth();
var nextSevenDate = sevenDaysLater.getDate();
//오늘
DateSearch.form.date_s.value = DateSearch.makeFullDate(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate);
//7일뒤
DateSearch.form.date_e.value = DateSearch.makeFullDate(nextSevenYear, nextSevenMonth, nextSevenDate);
}
//15일뒤 YYYY-mm-dd
DateSearch.getNextFiftheenDays = function() {
document.shop_list.searchtype.value = 'enddate';
var fifteenDaysLater = new Date(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate + 14) ;
var nextFifteenYear = fifteenDaysLater.getFullYear();
var nextFifteenMonth = fifteenDaysLater.getMonth();
var nextFifteenDate = fifteenDaysLater.getDate();
//오늘
DateSearch.form.date_s.value = DateSearch.makeFullDate(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate);
//15일뒤
DateSearch.form.date_e.value = DateSearch.makeFullDate(nextFifteenYear, nextFifteenMonth, nextFifteenDate);
}
//이번주 YYYY-mm-dd
DateSearch.getThisWeek = function() {
var startOfWeek = new Date(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate - DateSearch.date.curDay);
var startYear = startOfWeek.getFullYear();
var startMonth = startOfWeek.getMonth();
var startDate = startOfWeek.getDate();
var endOfWeek = new Date(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.curDate + (6- DateSearch.date.curDay)) ;
var endYear = endOfWeek.getFullYear();
var endMonth = endOfWeek.getMonth();
var endDate = endOfWeek.getDate();
//이번주 월요일
DateSearch.form.date_s.value = DateSearch.makeFullDate(startYear, startMonth, startDate);
//이번주 일요일
DateSearch.form.date_e.value = DateSearch.makeFullDate(endYear, endMonth, endDate);
}
//이번달 YYYY-mm-dd
DateSearch.getThisMonth = function() {
//달의 첫째 날
DateSearch.date.startOfMonth = new Date(DateSearch.date.curYear, DateSearch.date.curMonth, 1).getDate();
//달의 마지막 날
DateSearch.date.endOfMonth = new Date(DateSearch.date.curYear, DateSearch.date.curMonth, 0).getDate();
DateSearch.form.date_s.value = DateSearch.makeFullDate(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.startOfMonth);
DateSearch.form.date_e.value = DateSearch.makeFullDate(DateSearch.date.curYear, DateSearch.date.curMonth, DateSearch.date.endOfMonth);
}
//전체
DateSearch.resetDate = function() {
document.shop_list.searchtype.value = '';
DateSearch.form.date_s.value = '';
DateSearch.form.date_e.value = '';
}
// YYYY-mm-dd형식 변환
DateSearch.makeFullDate = function(requestYear, requestMonth, requestDate) {
requestMonth = requestMonth+1;
if (requestMonth < 10) {
requestMonth = '0' + requestMonth;
}
if (requestDate < 10) {
requestDate = '0' + requestDate;
}
DateSearch.date.fullDate = requestYear + '-' + requestMonth + '-' + requestDate;
return DateSearch.date.fullDate;
}
}
DateSearch();
</script>
'언어 > JAVASCRIPT' 카테고리의 다른 글
[JavaScript] 코드 압축 (0) | 2018.06.08 |
---|---|
[Component] 웹에서 엑셀같은 SpreadSheet 써보기 (0) | 2015.12.02 |
[펌]Memory leak 관리 방법 (0) | 2015.12.01 |
자바스크립트 코드 압축 하기 (0) | 2015.11.18 |
[펌] http://withwani.tistory.com/150
포스트 내용의 참고자료 출처 : 소설같은자바 Third Edition
JAVA에서 기본적인 자료 구조를 제공하기 위한 환경을 JAVA Collection Framework라고 한다.
다음은 JAVA Collection Framework의 상속 기본 구조이다.
|
- Collection
Collection 인터페이스를 상속받아 List와 Set 인터페이스가 된다. List는 순서가 있는 Collection, 그리고 List는 Data 중복을 허락한다. 하지만 Set은 순서의 의미가 없으며 Data를 중복해서 포함할 수 없다.
- List 인터페이스의 특징
- 순서가 있는 Collection.(이 순서는 삽입된 순서를 의미한다.)
- Data를 중복해서 포함할 수 있다.
- Stack의 특징
- Data의 삽입과 추출이 후입선출(Last-In First-Out) 구조로 되어 있다.
- push() method : Data 삽입할 때 사용
- pop() method : Data 추출할 때 사용
- peek() method : 추출할 Data를 삭제하지 않고 Data만을 가져 올 때 사용
- search() method : Stack으로부터 Data를 검색할 때 사용
- Vector의 특징
- 자동으로 동기화를 보장해준다.
- ArrayList에 동기화가 보장되도록 최적화한 클래스이다.
- JAVA 5.0 이 후로는 AutoBoxing/AutoUnBoxing을 지원한다.
- AutoBoxing이란? 기본 Data 타입을 Wrapper 클래스형의 객체로 자동으로 변환해주는 기능. AutoUnBoxing은 AutoBoxing의 반대 개념
- JAVA 1.4까지
Vector v = new Vector(); |
- JAVA 5.0이후
Vector v = new Vector(); |
- addElement() method : Data를 삽입할 때 사용
- elementAt() method : Data를 추출할 때 사용, Index에 해당하는 객체를 얻어냄
- size() method : Vector 내에 존재하는 객체의 수를 얻어낼 대 사용
- insertElementAt() method : Vector 내에 중간 삽입할 때 사용
- setElementAt() method : Vector 내에 존재하는 Data를 수정할 때 사용
- indexOf() method : Vector 내에 Data를 검색할 때 사용, Index를 반환
- contains() method : Data의 존재 유무를 알기 위해 사용.
- ArrayList의 특징
- 동기화를 보장해주지 않는다.
- 배열에 동적 메모리 증가 기능을 구현한 클래스이다.
- 동기화 지원 방법 : List list = Collections.synchronizeList(new ArrayList(…));
- add() method : Data 삽입할 때 사용
- get(0 method : Data 추출할 때 사용
- toArray() method : ArrayList로부터 배열 얻어낼 때 사용
- contains() method : Data의 존재 유무를 알기 위해 사용
- size() method : ArrayList의 요소 개수를 얻어낼 때 사용
- Set 인터페이스의 특징
- 집합적인 개념의 Collection
- 순서의 의미가 없다.
- Data를 중복해서 포함할 수 없다.
- HashSet의 특징
- add() method : Data 삽입할 때 사용
- next() method : Data 추출할 때 사용
- HashSet의 Data 추출은 Iterator을 이용하면 된다. Iterator는 Collection내의 모든 Data에 접근할 수 있는 특징이 있다. 그리고 Data의 마지막에 상관하지 않고 검색하기 위한 인터페이스이다. Set의 Iterator() method로 Iterator를 얻어 낼 수 있으며, Iterator의 hasNext() method를 이용해서 Data 끝을 만날 때까지 next() method를 호출해서 Data를 추출할 수 있다.
Iterator<String iter = set.iterator(); System.out.print(temp + ", "); |
- remove() method : Data를 삭제할 때 사용
- contains() method : Data의 포함여부를 알기 위해 사용
- size() method : HashSet의 요소 개수를 얻어낼 때 사용
- Map
List와 Set이 순서나 집합적인 개념의 인터페이스라면 Map은 검색의 개념이 가미된 인터페이스이다. Map 인터페이스는 데이터를 삽입할 때 Key와 Value의 형태로 삽입되며, Key를 이용해서 Value를 얻을 수 있다.
- Hashtable, HashMap의 공통점
- 내부적으로 모두 Hash 기법을 이용한다.
- Map 인터페이스를 구현하고 있다.
- Key와 Value를 이용해서 Data를 관리한다.
- Hashtable, HashMap의 차이점
- Hashtable은 동기화가 보장된다.
- HashMap은 동기화가 보장되지 않는다.
- HashMap의 동기화 지원 방법 : Map m = Collections.synchronizedMap(New HashMap(…));
- Hashtable, HashMap과 HashSet과의 관계
- Hashtable과 HashMap은 둘 다 Map 인터페이스를 구현하고 있다.
- HashSet은 내부적으로 Hash기법을 사용하지만 Set인터페이스를 구현하고 있다.
- HashMap
- 객체 생성 : Map<String, Integer> map = new HashMap<String, Integer>();
- put() method : Data 삽입할 때 사용
- get() method : Data를 추출할 때 사용, argument값은 Key를 사용
- Hashtable
- 객체 생성 : Hashtable<String, Object> h = new Hashtable<String, Object>();
- put() method : Data 삽입할 때 사용
- get() method : Data를 추출할 때 사용, argument값은 Key를 사용
- Sorted
Set과 Map 인터페이스를 상속받아 정렬 기능이 추가된 SortedSet과 SortedMap 인터페이스가 된다. 그리고 이들은 각각 TreeSet 클래스와 TreeMap 클래스로 구성된다. TreeSet과 TreeMap은 Set과 Map의 기능을 가지고 있으면서 정렬 기능이 가미되었다는 것이 특징이다.
- Sorted를 지원하지 않는 클래스
- HashSet, HashMap
- Sorted를 지원하는 클래스
- TreeSet, TreeMap
- TreeMap
- Key와 Value로 Data를 관리
- Key를 기준으로 오름차순으로 정렬된다.
- Map 인터페이스를 상속한 SortedMap 인터페이스를 구현한 클래스
- TreeSet
- Set 인터페이스를 상속한 SortedSet 인터페이스를 구현한 클래스
- 데이터들이 자동으로 오름차순으로 정렬된다.
- Comparator
- TreeSet과 TreeMap은 사용자가 직접 정렬의 방식을 지정할 수 있다.
- TreeSet과 TreeMap은 정렬을 위한 Comparator 인터페이스를 구현하면 된다.
- TreeSet에 Data를 집어 넣으면 기본적으로 오름차순(Ascending) 정렬이 되지만 그것도 문자열이나 기본 데이터 타입과 같은 단순한 것에만 해당된다. 이에 사용자가 직접 비교법을 넣어주기 위해 사용하는 것이 Comparator 인터페이스이다.
- Comparator의 구현 방법 : Comparator 내부에 compare() method를 구현하면 된다.
class Mycomparator<T> implements Comparator<T> { |
- Comparator가 추가된 TreeSet의 생성
TreeSet<Score> tset = new TreeSet<Score>(new MyComparator<Score>()); |
- Comparator가 추가된 TreeMap의 생성
TreeMap<Score, String> tset = new TreeMap<Score, String>(new MyComparator<Score>()); |
- 일반적인 정렬기능의 사용
- HashSet이나 HashMap을 정렬 기능이 지원되는 TreeSet이나 TreeMap으로 변환해서 사용
- HashSet을 이용한 TreeSet 생성
Set<String> set = new HashSet<String>(); |
- HashMap을 이용한 TreeMap 생성
Map<String, Integer> map = new HashMap<String, Integer>(); |
'언어 > JAVA' 카테고리의 다른 글
HashMap 의 Key, value 값 가져오기 (0) | 2015.12.02 |
---|---|
모든 JVM에 대한 파일 인코딩을 전역 설정하는 간단한 절차 방법 (2) | 2015.12.02 |
JAVA 설치 (1) | 2015.12.02 |
[펌] http://k.daum.net/qna/openknowledge/view.html?qid=40E4I
HashMap에 entrySet 메소드를 호출하면 키가 들어있는 Set이 넘어 옵니다.
Set에서
iterator를 뽑아내면 whlie 문으로 루프를 돌려서 키를 하나씩 가져올 수 있습니다.
아래
코드는 가져온 키를 기준으로 값을 가져와서 출력한 샘플 입니다.
public
static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("A", "aaa");
map.put("B", "bbb");
map.put("C", "ccc");
map.put("D", "ddd");
map.put("E", "eee");
map.put("F", "fff");
Set<Entry<String,String>> entrySet = map.entrySet();
Iterator<Entry<String, String>> iterator =
entrySet.iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
System.out.println(entry.getKey() +
"=" + entry.getValue());
}
}
출력
결과는 아래와 같습니다.
D=ddd
E=eee
F=fff
A=aaa
B=bbb
C=ccc
'언어 > JAVA' 카테고리의 다른 글
JavaCollection(List, Set) 과 Map 설명 (0) | 2015.12.02 |
---|---|
모든 JVM에 대한 파일 인코딩을 전역 설정하는 간단한 절차 방법 (2) | 2015.12.02 |
JAVA 설치 (1) | 2015.12.02 |
내컴퓨터 - 고급시스템 설정 - 고급 - 환경변수
시스템 변수 - 새로 만들기
- 변수이름 : JAVA_TOOL_OPTIONS
- 변수 값 : -Dfile.encording=UTF-8
'언어 > JAVA' 카테고리의 다른 글
JavaCollection(List, Set) 과 Map 설명 (0) | 2015.12.02 |
---|---|
HashMap 의 Key, value 값 가져오기 (0) | 2015.12.02 |
JAVA 설치 (1) | 2015.12.02 |
간만에 PC를 포맷하면서 다시 처음부터 JAVA를 설치하였다.
혹시나 또 까먹을까봐.. 적어놔야지..ㅎㅎ
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
가서 Windows x64의 JDK를 다운 받고 설치한다.
여기까지는 쉽고..
내컴퓨터 속성 - 고급시스템설정 - 고급 탭 - 환경변수 클릭
시스템변수 - 새로만들기 클릭
변수이름 : JAVA_HOME
변수 값 : C:\Program Files\Java\jdk1.8.0_31 ===>위에서 설치된 JAVA 경로입니다.
그 다음
시스템 변수 - Path 더블클릭(또는 편집)
변수 값 : ;%JAVA_HOME%;%JAVA_HOME%\bin;
==> 추가
이러고
cmd 창에서 javac 입력해서 제대로 주루룩~ 나오면 성공~
아 참고로 JAVA_HOME 이라고 이름 짓는 이유는 톰캣에서 찾는 기본 경로가 JAVA_HOME 이기
때문이라고 알고 있는데...ㅎㅎ..
맞는지는..
'언어 > JAVA' 카테고리의 다른 글
JavaCollection(List, Set) 과 Map 설명 (0) | 2015.12.02 |
---|---|
HashMap 의 Key, value 값 가져오기 (0) | 2015.12.02 |
모든 JVM에 대한 파일 인코딩을 전역 설정하는 간단한 절차 방법 (2) | 2015.12.02 |